从一个数据库复制到另一个数据库的最简单方法?

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

我知道我可以使用

INSERT INTO database2.table2 SELECT * from database1.table1 

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

如果你有shell的访问权限,你可以使用mysqldump来转储database1.table1的内容,并将其传递给mysqldatabase2 。 这里的问题是table1仍然是table1

 mysqldump --user=user1 --password=password1 database1 table1 \ | mysql --user=user2 --password=password2 database2 

也许你需要用另一个查询将table1重命名为table2 。 另一方面,您可能会使用sed将table1更改为table2到pipe道之间。

 mysqldump --user=user1 --password=password1 database1 table1 \ | sed -e 's/`table1`/`table2`/' \ | mysql --user=user2 --password=password2 database2 

如果table2已经存在,那么可以将参数添加到第一个不创build表格创build的mysqldump中。

 mysqldump --no-create-info --no-create-db --user=user1 --password=password1 database1 table1 \ | sed -e 's/`table1`/`table2`/' \ | mysql --user=user2 --password=password2 database2 

CREATE TABLE db1.table1 SELECT * FROM db2.table1

其中db1是目标,而db2是源

如果您使用PHPMyAdmin,它可能非常简单。 假设你有以下数据库:

 DB1 & DB2 

DB1有一个你想要复制到DB2的表用户

在PHPMyAdmin下,打开DB1,然后转到用户表。

在此页面上,点击右上angular的“操作”标签。 在“操作”下,查找“ 将表复制到(database.table)”部分:

你完成了!

MySql Workbench :强烈推荐

数据库迁移工具从MySql Workbench

这将很容易处理迁移问题。 您可以在MySql和SqlServer之间迁移选定数据库的选定表。 你应该尝试一下。

我使用Navicat for MySQL …

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

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

  INSERT INTO Database2.Table1 SELECT * from Database1.Table1 

使用MySql Workbench的导出和导入function。 脚步:
1.select你想要的值

 Eg select * from table1; 
  1. 点击导出button并保存为CSV。
  2. 创build一个使用与第一个类似的列的新表

     Eg create table table2 like table1; 
  3. 从新表中select全部

     Eg select * from table2; 
  4. 点击导入,然后select您在步骤2中导出的CSV文件

MySql Workbench中的导出和导入按钮示例

如果你的表在同一个mysql服务器上,你可以运行下面的命令

 CREATE TABLE destination_db.my_table SELECT * FROM source_db.my_table; ALTER TABLE destination_db.my_table ADD PRIMARY KEY (id); ALTER TABLE destination_db.my_table MODIFY COLUMN id INT AUTO_INCREMENT; 

试试mysqldbcopy ( 文档 )

或者您可以在目标主机上创build“ 联合表 ”。 联合表使您可以从不同的数据库服务器看到一个表,就好像它是本地表一样。 ( 文件 )

在创build联邦表之后,可以使用通常的insert into TARGET select * from SOURCE将数据复制insert into TARGET select * from SOURCE

使用MySQL Workbench,您可以使用“数据导出”将表转储到本地SQL文件(仅数据,仅结构或结构和数据),然后将数据导入到其他数据库。

您可以同时打开多个连接(不同的主机,数据库,用户)。

这是你需要定期做的事情,还是只有一个?

您可以执行导出操作(例如,使用phpMyAdmin或类似的方法),将您的表格及其内容编写为文本文件,然后将其重新导入到另一个数据库中。

使用以下步骤将一个数据库表中的某些列复制并插入到另一个数据库表中 –

  1. CREATE TABLE tablename(columnname datatype(size),columnname datatype(size));

2. INSERT INTO db2.tablename SELECT columnname1,columnname2 FROM db1.tablename;

IN xampp只需将所需的表格导出为.sql文件,然后将其导入到所需的表格中

这是另一个简单的方法:

使用DB1;
显示创build表TB1;
– 将剪贴板中的语法复制到DB2中创buildTB1

使用DB2;
– 在这里粘贴语法来创build表TB1
INSERT INTO DB2.TB1 SELECT * from DB1.TB1;