crear - MySQL-¿Se une a las bases de datos en diferentes servidores que usan Python?
crear conexion mysql python (3)
Es muy simple: seleccione datos de un servidor, seleccione datos de otro servidor y agregue usando Python. Si desea tener una consulta SQL con JOIN
, coloque el resultado de ambos servidores en tablas separadas en la SQLite
datos SQLite
local y escriba SELECT
con JOIN
.
En MySQL
, tengo dos bases de datos diferentes, llamémoslas A
y B
La base de datos A
reside en el servidor servidor server1
, mientras que la base de datos B
reside en el servidor servidor2.
Ambos servidores { A
, B
} están físicamente cerca el uno del otro , pero están en máquinas diferentes y tienen diferentes parámetros de conexión (nombre de usuario diferente, contraseña diferente, etc.).
En tal caso, ¿es posible realizar una unión entre una tabla que está en la base de datos A
, en una tabla que está en la base de datos B
?
Si es así, ¿cómo lo hago, programáticamente, en python
? (Estoy usando el MySQLDB
de MySQLDB
para interactuar por separado con cada una de las bases de datos).
Intente utilizar el motor de almacenamiento FEDERATED .
Solución alternativa: es posible utilizar otro DBMS para recuperar datos entre dos bases de datos, por ejemplo, podría hacerlo utilizando servidores vinculados en MS SQL Server (consulte sp_addlinkedserver procedure). De la documentación:
Un servidor vinculado permite el acceso a consultas distribuidas y heterogéneas contra orígenes de datos OLE DB.
No. No es posible hacer la unión como te gustaría. Pero es posible que pueda resolver algo replicando uno de los servidores en el otro para la base de datos individual.
Un conjunto de datos está bajo el control de una copia de MySQL y el otro conjunto de datos está bajo el control de la otra copia de MySQL. La consulta solo puede ser procesada por uno de los servidores (MySQL).
Si crea una copia de la segunda base de datos en el primer servidor o viceversa (la que obtiene la menor cantidad de actualizaciones es la mejor) puede configurar la replicación para mantener la copia actualizada. Luego podrá ejecutar la consulta como lo desee.