例如,在某个时候,为了构建一个测试环境,或者克隆一个Web站点,您需要复制一个现有的MySQL数据库。

假设现有的数据库名称为db1,想复制一个,并将其命名为newdb。步骤如下:

1。首先创建一个新的数据库newdb


# MySQL
你的根文件
MySQL >创建
数据库` newdb `默认字符集utf8整理utf8_general_ci;


2。使用mysqldump和MySQL命令组合完成复制


# mysqldump
DB1 U根文件-添加删除表MySQL newdb U根文件|


(注意书写的文件参数:直接在密码与P,没有空间中)

以上是在同一台MySQL服务器上复制数据库的方法。如果您想复制到一个远程MySQL服务器,您可以使用MySQL的H主机名称的 IP参数。前提是MySQL允许远程连接,并且远程复制的传输效率和时间是可以接受的。


# mysqldump
-中-文件-添加DB1下拉表MySQL - H 192.168.1.22 newdb - uroo |


MySQL复制数据表方法

示例如下:

在生产数据库的存储表的快速复制到mytbl_new,和2个命令如下:


创建表mytbl_new像production.mytbl;
插入mytbl_new SELECT * FROM production.mytbl;


第一个命令是创建一个新的数据表,mytbl_new,和复制的存储的数据表结构。

第二命令复制数据在数据表到新表mytbl_new。

注:production.mytbl是数据库命名的生产被指定要复制的表的名称。它是可选的。

如果没有生产,MySQL数据库将承担存储在当前数据库操作。

其他的方法:



方案1:



复制整个表




创建表new_table SELECT * FROM old_table;


复制非复制数据




从old_table 0创建表new_table选择*;


注:本方案实际上只是建立了一个SELECT语句的结果表。所以new_table表没有主键和索引。

方案2:



如果我们有这样一张桌子如下:

ID用户名密码

= =

1行政*************

2该*************

3斯图尔特*************


如果不存在,创建表(admin)
` ID ` int(6)符号的非空auto_increment,
`用户名` varchar(50)不为空的默认,
`密码` varchar(100)默认为空,
主键(id)
)= MyISAM引擎默认的字符集latin1 auto_increment = 4;


1。下面的语句将复制到新表的表结构newadmin。(在一份表无数据)


创建表newadmin喜欢管理


2。下面的语句将数据复制到新表。注:这句话其实是只为SELECT语句的结果建立一个表,newadmin表没有主键、索引。


创建表newadmin
(
*选择
从管理
)


三.如果您想制作一个表的真实副本,可以使用以下语句。


创建表newadmin喜欢管理;
插入newadmin select * from admin;


4。我们可以操作不同的数据库。


创建表newadmin像shop.admin;
创建表newshop.newadmin像shop.admin;


5。我们也可以复制表中的一些字段。


创建表newadmin
(
从admin中选择用户名、密码
)


6。我们还可以更改新表的名称。


创建表newadmin
(
选择ID,用户名密码信息,通过管理员
)


7。我们也可以复制一部分数据。


创建表newadmin
(
从左边的管理器中选择*(用户名,1)=
)


8。我们也可以在创建表的同时定义表中的字段信息。


创建表newadmin
(
不空auto_increment主键ID的整数
)
(
从管理中选择*
)



以上是快速复制MySQL数据库表的方法,这是介绍给你的。希望你能喜欢。