MySQL -- 使用Python在不同服务器间进行数据库联接?
在 MySQL
中,我有两个不同的数据库——我们称它们为 A
和 B
。
数据库 A
在服务器 server1
上,而数据库 B
在服务器 server2
上。
这两个服务器 {A
, B
} 是 物理上靠得很近,但它们在不同的机器上,并且连接的参数也不同(比如用户名、密码等都不一样)。
在这种情况下,能否将数据库 A
中的一个表和数据库 B
中的一个表进行连接(join)呢?
如果可以的话,我该如何在 python
中实现这个操作?(我正在使用 python
的 MySQLDB
来分别与这两个数据库进行交互。)
3 个回答
3
不可以。你想要的那种连接是做不到的。不过,你可以试着把其中一个服务器的数据复制到另一个服务器上,来解决这个问题。
一个数据集是由一个MySQL数据库控制的,另一个数据集则是由另一个MySQL数据库控制的。查询只能在其中一个MySQL服务器上处理。
如果你在第一个服务器上创建第二个数据库的副本,或者反过来(最好是选择更新最少的那个),你可以设置复制功能,让副本保持最新。这样,你就能按照你的需求来运行查询了。
4
这很简单——从一个服务器上选择数据,从另一个服务器上选择数据,然后用Python把它们合在一起。如果你想用SQL查询中的JOIN
,可以把两个服务器的结果放到本地的SQLite
数据库里的两个不同表中,然后写一个带JOIN
的SELECT
查询。
22
试着使用 FEDERATED 存储引擎。
解决方法:你可以使用其他数据库管理系统(DBMS)来在两个数据库之间获取数据,比如在 MS SQL Server 中使用 链接服务器(可以参考 sp_addlinkedserver 存储过程)。根据文档的说法:
链接服务器可以让你对分布式的、不同类型的数据源进行查询。