在MySQL
中,我有两个不同的数据库 - 我们称之为A
和B
。
数据库A
驻留在服务器server1
上,而数据库B
驻留在服务器server2
上。
两个服务器{A
,B
} 彼此物理上相近,但它们位于不同的计算机上并具有不同的连接参数(不同的用户名,不同的密码等)
在这种情况下,是否可以在数据库A
中的表与数据库B
中的表之间执行连接?
如果是这样,我如何以编程方式在python
中进行操作? (我使用python
的{{1}}分别与每个数据库进行交互。
答案 0 :(得分:22)
解决方法:可以使用另一个DBMS在两个数据库之间检索数据,例如,您可以使用MS SQL Server中的链接服务器来执行此操作(请参阅sp_addlinkedserver存储过程)。来自文档:
链接服务器允许访问针对OLE DB数据源的分布式异构查询。
答案 1 :(得分:3)
非常简单 - 从一台服务器中选择数据,从另一台服务器中选择数据并使用Python进行聚合。如果您希望使用JOIN
进行SQL查询 - 将两个服务器的结果放入本地SQLite
数据库中的单独表中,并使用SELECT
写入JOIN
。
答案 2 :(得分:3)
没有。无法按照您的意愿进行连接。但是,您可以通过将其中一个服务器复制到另一个服务器来为单个数据库排序。
一个数据集受一个MySQL副本的控制,另一个数据集受MySQL另一个副本的控制。该查询只能由其中一个(MySQL)服务器处理。
如果您在第一台服务器上创建第二个数据库的副本(反之亦然)(获得最少更新的数据库最好),您可以设置复制以使副本保持最新。然后,您就可以根据需要运行查询。