我想从第二个MySQL数据库中选择数据,以便将数据从一个服务器迁移到另一个服务器。
我正在寻找类似的语法 SELECT * FROM username:password@serverip.databaseName.tableName
这可能吗?我可以使用链接服务器在Microsoft SQL Server中执行此操作,因此我假设它也可以在MySQL中使用。
答案 0 :(得分:3)
您可以使用FEDERATED
存储引擎创建表格:
CREATE TABLE tableName (id INT NOT NULL, …)
ENGINE=FEDERATED
CONNECTION='mysql://username:password@serverip/databaseName/tableName'
SELECT *
FROM tableName
基本上,它将作为远程tableName
的视图。
答案 1 :(得分:0)
你可以采取两种方法,虽然它们都不像你所追求的那样:
使用replication并在两个数据库之间建立主/从关系。
只需从第一个数据库转储数据(使用命令行mysqldump工具)并将其导入第二个数据库。
但是,这两个数据最终都会迁移所有数据(即:不是子集),尽管您可以通过mysqldump指定特定的表。此外,如果您使用mysqldump方法并且您没有使用InnoDB,则需要确保在创建转储时源数据库未被使用(即:具有完整性)。
答案 2 :(得分:0)
您不能直接执行此操作,但正如其他人在评论中提到的那样,您可以使用mysqldump
将表的内容导出为SQL脚本。
此时您可以在新服务器上运行脚本来创建表,或者如果需要对数据进行更多操作,请将该数据导入到新服务器上具有不同名称的表中,然后将查询写入从那里复制数据。