Python 连接到两个数据库
我想使用Python连接到两个数据库,稍后使用这两个数据库中的表。我该怎么做?以下代码正确吗Python 连接到两个数据库,python,mysql,Python,Mysql,我想使用Python连接到两个数据库,稍后使用这两个数据库中的表。我该怎么做?以下代码正确吗 con = mdb.connect(host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1, db2=MY_DB2) 只需要做两个独立的连接 con1 = mdb.connect (host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1) con2 = mdb.connect (host=MY_
con = mdb.connect(host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1, db2=MY_DB2)
只需要做两个独立的连接
con1 = mdb.connect (host=MY_HOST, user=MY_USER, passwd=MY_PASS, db1=MY_DB1)
con2 = mdb.connect (host=MY_HOST2, user=MY_USER2, passwd=MY_PASS2, db2=MY_DB2)
并像使用一个数据库一样独立使用它们。如果在
connect
调用中未指定数据库,则可以一次对多个数据库编写查询。说明不需要db
db = _mysql.connect('localhost', 'user', 'passwd')
然后
但是只有当两个数据库在同一台服务器上时,它才会工作。您有两种可能: 1) 将数据放入一个数据框,并使用它在第二台服务器中创建表 2) BCP从server1中输出数据并将其加载到第二台服务器中两个(或更多)连接可以存在于单个变量中,例如字典。如果您想同时对所有连接执行一个操作,这将非常方便。例如,关闭所有它们。下面是一个例子:
连接={
“conn1”:mdb.connect(主机、用户、密码、数据库),
“conn2”:mdb.connect(主机、用户、密码、数据库)
}
您可以使用其密钥检索每个连接:
connections['conn1'].执行('SELECT…')
您可以在一行中关闭所有连接:
[conn.close()用于键,conn-in-connections.items()]
您所说的“使用两个数据库中的表”是什么意思。是否要在单个查询中加入它们?这是不可能的。@Tichodroma是的,我想从数据库1连接tableA,从数据库2连接tableB,这两个数据库都在同一台服务器上。有可能吗?与我的答案相比,这样做有好处吗?一个连接对两个连接。为什么一个比两个好?性能、内存、易用性还是您的良好品味?两个连接意味着MySQL服务器打开两个套接字。选择数据库就像使用thatdb
,因此默认情况下您会选择该数据库。如果您计划同时在多个数据库之间执行查询,那么不选择一个数据库可能会更简单,这实际上是一个品味问题。但是两个连接是不必要的。如果您想在它们之间切换,您可以始终执行cursor.exectue('USE otherDB')。无法工作,对吗?[conn1]
处缺少单引号@我已经纠正了这个错误。我没有太多地关注语法。这只是一个简单的例子。
SELECT u.*, i.* FROM db1.users u LEFT JOIN db2.items i ON u.id = i.user_id