当数据库属于不同的用户时,将数据从一个数据库中的表复制到另一个数据库中的表的最佳方法是什么?

我知道我可以用

INSERT INTO database2.table2 SELECT * from database1.table1

但这里的问题是database1和database2都在不同的MySQL用户下。所以user1只能访问database1, user2只能访问database2。任何想法?


当前回答

创建表db1。SELECT * FROM db2.table1

哪里db1是目标,db2是源

其他回答

尝试mysqldbcopy(文档)

或者可以在目标主机上创建“联邦表”。联邦表允许您查看来自不同数据库服务器的表,就像它是本地表一样。(文档)

创建联邦表之后,可以使用通常的insert从SOURCE将数据复制到TARGET select *中

这对我很有效

CREATE TABLE dbto.table_name like dbfrom.table_name;
insert into  dbto.table_name select * from dbfrom.table_name;

我使用Navicat MySQL…

它使所有数据库操作变得简单!

您只需在Navicat中选择两个数据库,然后使用。

 INSERT INTO Database2.Table1 SELECT * from Database1.Table1

我知道这是一个老问题,只是回答,以便任何人降落在这里得到更好的方法。

从5.6.10开始你就可以做到

CREATE TABLE new_tbl LIKE orig_tbl;

参考文档:https://dev.mysql.com/doc/refman/5.7/en/create-table-like.html

像sakila.customer(Database_name.tablename)一样创建表destination_customer,这只会复制源表的结构,对于数据也要复制结构,这样创建表destination_customer作为select * from sakila.customer