Minutis Asked: 2012-04-10 22:00:36 +0800 CST2012-04-10 22:00:36 +0800 CST 2012-04-10 22:00:36 +0800 CST 一查询两台MySQL服务器 772 我在不同的服务器计算机上有两台 MySQL 服务器。是否可以像这样执行单个查询: INSERT INTO database1.xxxxx SELECT table1.field1, table2.field1 FROM database2.xxxxx INNER JOIN .... 编辑:我会让 cron 工作女巫每天运行一次。我不需要同步。 mysql query 2 个回答 Voted Mahesh Patil 2012-04-11T01:50:26+08:002012-04-11T01:50:26+08:00 首先,在这种情况下,您有两个远程 MySQL 服务器,您需要有两个连接。MySQL 不支持这种连接到其他服务器并获取详细信息的查询,据我了解,没有其他 RDBMS 会做这种事情。 INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 结论: 没有。您不能在两台Mysql 服务器上编写这样的查询。 Best Answer Minutis 2012-04-12T05:39:52+08:002012-04-12T05:39:52+08:00 这是我最终完成的 cron 工作: 我必须创建数据库,在其中存储临时数据: mysqldump -uuser -ppass database table1 -hhost | mysql -uuser -ppass database_copy && mysqldump -uuser -ppass database table2 -hhost | mysql -uuser -ppass database_copy and etc 在复制所有需要的数据后,我运行 MySQL 查询来根据我的需要处理和插入数据: mysql -e "INSERT INTO table3 SELECT fields... FROM database_copy INNER JOIN database_copy WHERE ...; QUERY 2; ..." -hhost -uuser -ppass PS我会确认我自己的答案是正确的,但随时添加任何更简单或更简单的方法来做到这一点,我会重新检查你的答案。
首先,在这种情况下,您有两个远程 MySQL 服务器,您需要有两个连接。MySQL 不支持这种连接到其他服务器并获取详细信息的查询,据我了解,没有其他 RDBMS 会做这种事情。
结论: 没有。您不能在两台Mysql 服务器上编写这样的查询。
这是我最终完成的 cron 工作:
我必须创建数据库,在其中存储临时数据:
mysqldump -uuser -ppass database table1 -hhost | mysql -uuser -ppass database_copy && mysqldump -uuser -ppass database table2 -hhost | mysql -uuser -ppass database_copy
and etc
在复制所有需要的数据后,我运行 MySQL 查询来根据我的需要处理和插入数据:
mysql -e "INSERT INTO table3 SELECT fields... FROM database_copy INNER JOIN database_copy WHERE ...; QUERY 2; ..." -hhost -uuser -ppass
PS我会确认我自己的答案是正确的,但随时添加任何更简单或更简单的方法来做到这一点,我会重新检查你的答案。