我有两个数据库。我想从第一个数据库中的一个表转储数据,然后在第二个数据库中插入另一个具有另一个名称的表 所以我的DB1有表tbl1和tabl2,DB2有表tbl3和tbl4。我知道tabl1和tabl3具有相同的结构。如何使用mysqldump命令将数据从一个复制到另一个? 我试过这样做,但这不行。
mysqldump --user root --password=password --no-create-info DB1 tbl1 > c:/dump.sql
mysql --user root --password=password DB2 tbl3 < c:/dump.sql
答案 0 :(得分:5)
由于表名不同,这不起作用
如果两个数据库都使用相同的守护程序位于同一服务器中,则可以直接
insert into DB2.tbl3 select * from DB1.tbl1;
如果DB2中不存在tbl1,则 伪代码:
# import as tbl1 from DB1 into tbl1 in DB2
mysqldump DB1 tbl1 | mysql DB2
# then rename tbl1 in DB2 to tbl3
mysql DB2 -N <<< "rename table tbl1 to tbl3"
答案 1 :(得分:2)
我在linux shell命令行中使用
mysqldump --user=username --password=xxxx dbname | mysql --host=remotehost.com --user=username --password=xxxx -C dname
将其从本地主机传输到远程主机,即整个数据库。
答案 2 :(得分:0)
如果您还希望复制表的内容,则可以执行以下操作:
CREATE TABLE `new_table_name` LIKE `old_table_name`;
INSERT INTO `new_table_name` SELECT * FROM `old_table_name`;
如果必须将表从一个数据库复制到另一个数据库,请使用以下
CREATE TABLE `db1.new_table_name` LIKE `db2.old_table_name`;
INSERT INTO `db1.new_table_name` SELECT * FROM `db2.old_table_name`;
它对我有用,因为转储单个表并且导入时使用MariaDB引发语法错误