国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL快速復(fù)制數(shù)據(jù)庫數(shù)據(jù)表的方法

2024-07-24 13:08:01
字體:
供稿:網(wǎng)友

有些時候,我們?yōu)榱丝焖俅罱ㄒ粋€測試環(huán)境,或者說是克隆一個網(wǎng)站,需要復(fù)制已經(jīng)存在的mysql數(shù)據(jù)庫。下面小編給大家介紹mysql快速復(fù)制數(shù)據(jù)庫數(shù)據(jù)表的方法,小伙伴們跟著小編一起學(xué)習吧

某些時候,例如為了搭建一個測試環(huán)境,或者克隆一個網(wǎng)站,需要復(fù)制一個已存在的mysql數(shù)據(jù)庫。使用以下方法,可以非常簡單地實現(xiàn)。

假設(shè)已經(jīng)存在的數(shù)據(jù)庫名字叫db1,想要復(fù)制一份,命名為newdb。步驟如下:

1. 首先創(chuàng)建新的數(shù)據(jù)庫newdb

 

 
  1. #mysql 
  2. -u root -ppassword 
  3. mysql>CREATE 
  4. DATABASE `newdb` DEFAULT CHARACTER SET UTF8 COLLATE UTF8_GENERAL_CI; 

2. 使用mysqldump及mysql的命令組合,一次性完成復(fù)制

 

 
  1. #mysqldump 
  2. db1 -u root -ppassword --add-drop-table | mysql newdb -u root -ppassword 

(注意-ppassword參數(shù)的寫法:-p后面直接跟密碼,中間沒有空格)

以上是在同一臺MySQL服務(wù)器上復(fù)制數(shù)據(jù)庫的方法。如果要復(fù)制到遠程另一臺MySQL服務(wù)器上,可以使用mysql的“ -h 主機名/ip”參數(shù)。前提是mysql允許遠程連接,且遠程復(fù)制的傳輸效率和時間可以接受。

 

 
  1. #mysqldump 
  2. db1 -uroot -ppassword --add-drop-table | mysql -h 192.168.1.22 newdb -uroo 

MySQL復(fù)制數(shù)據(jù)表方法

示例如下:

將 production 數(shù)據(jù)庫中的 mytbl 表快速復(fù)制為 mytbl_new,2個命令如下:

 

 
  1. CREATE TABLE mytbl_new LIKE production.mytbl; 
  2. INSERT mytbl_new SELECT * FROM production.mytbl; 

第一個命令是創(chuàng)建新的數(shù)據(jù)表 mytbl_new ,并復(fù)制 mytbl 的數(shù)據(jù)表結(jié)構(gòu)。

第二個命令是講數(shù)據(jù)表 mytbl 中的數(shù)據(jù)復(fù)制到新表 mytbl_new 。

注:production.mytbl是指定要復(fù)制表的數(shù)據(jù)庫名稱為 production 。它是可選的。

假如沒有production. ,MySQL數(shù)據(jù)庫將會假設(shè)mytbl在當前操作的數(shù)據(jù)庫。

其它方法:

方案1:

復(fù)制整個表

 

 
  1. CREATE TABLE new_table SELECT * FROM old_table; 

復(fù)制,不復(fù)制數(shù)據(jù)
 

  1. CREATE TABLE new_table SELECT * FROM old_table where 0; 

注意:本方案其實只是把select語句的結(jié)果建一個表。所以new_table這個表不會有主鍵、索引。

方案2:

假如我們有以下這樣一個表:

id username password

-----------------------------------

1 admin *************

2 sameer *************

3 stewart *************
 

  1. CREATE TABLE IF NOT EXISTS `admin` (  
  2. `id` int(6) unsigned NOT NULL auto_increment,  
  3. `username` varchar(50) NOT NULL default '',  
  4. `password` varchar(100) default NULL,  
  5. PRIMARY KEY (`id`)  
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; 

1. 下面這個語句會拷貝表結(jié)構(gòu)到新表newadmin中。 (不會拷貝表中的數(shù)據(jù))
 

  1. CREATE TABLE newadmin LIKE admin 

2. 下面這個語句會拷貝數(shù)據(jù)到新表中。 注意:這個語句其實只是把select語句的結(jié)果建一個表。所以newadmin這個 表不會有主鍵,索引。

 

  1. CREATE TABLE newadmin  
  2. (  
  3. SELECT *  
  4. FROM admin  

3. 如果你要真正的復(fù)制一個表。可以用下面的語句。

 

 
  1. CREATE TABLE newadmin LIKE admin;  
  2. INSERT INTO newadmin SELECT * FROM admin; 

4. 我們可以操作不同的數(shù)據(jù)庫。

 

 
  1. CREATE TABLE newadmin LIKE shop.admin;  
  2. CREATE TABLE newshop.newadmin LIKE shop.admin; 

5. 我們也可以拷貝一個表中其中的一些字段。

 

 
  1. CREATE TABLE newadmin  
  2. (  
  3. SELECT username, password FROM admin  

6. 我們也可以講新建的表的字段改名。

 

 
  1. CREATE TABLE newadmin  
  2. (  
  3. SELECT id, username AS uname, password AS pass FROM admin  

7. 我們也可以拷貝一部分數(shù)據(jù)。

 

 
  1. CREATE TABLE newadmin  
  2. (  
  3. SELECT * FROM admin WHERE LEFT(username,1) = 's' 

8. 我們也可以在創(chuàng)建表的同時定義表中的字段信息。

 

 
  1. CREATE TABLE newadmin  
  2. (  
  3. id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY 
  4. )  
  5. (  
  6. SELECT * FROM admin  

以上內(nèi)容就是小編給大家介紹的MySQL快速復(fù)制數(shù)據(jù)庫數(shù)據(jù)表的方法,希望大家喜歡。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 苍梧县| 类乌齐县| 邯郸市| 三穗县| 偃师市| 西和县| 长兴县| 深泽县| 丰城市| 平度市| 丰宁| 如东县| 离岛区| 长顺县| 城市| 堆龙德庆县| 金堂县| 江源县| 芦山县| 北海市| 孝义市| 同仁县| 嘉黎县| 黔南| 香河县| 天气| 西城区| 门头沟区| 蓝田县| 顺昌县| 尚志市| 大兴区| 哈密市| 昭苏县| 嘉鱼县| 敦化市| 濮阳市| 景泰县| 齐齐哈尔市| 南康市| 海阳市|