sql >> Base de Datos >  >> RDS >> Mysql

Cómo sincronizar una base de datos MySQL entre dos bases de datos remotas (sin la técnica de replicación de la base de datos MySQL)

Como dice la pregunta para sincronizar todo datos de un servidor a otro, creo que puede usar una solución relativamente simple, que involucra mysqldump .

Creo que puedes hacer todo esto desde el servidor dedicado:

mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql

Reemplazar <username> , <password> , <port> y <server 1 hostname> con los detalles de conexión para el servidor 1. Reemplácelo con el nombre de la base de datos en el servidor 1 que desea copiar al servidor 2. Si desea copiar toda la base de datos, reemplácela con la opción --all-databases.

Esto creará un archivo llamado dump.sql en el directorio actual. Luego puede cargar esto en el servidor 2:

mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql

Reemplazar <username> , <password> , <port> y <server 2 hostname> con los detalles de conexión para el servidor 2.

Esto tomará el archivo dump.sql y lo cargará en la base de datos en el servidor 2. Esto dejará la base de datos en el servidor 2, por lo que todos los datos existentes se reemplazarán con los de dump.sql .

Verifique las opciones de mysqldump (con respecto a la eliminación de bases de datos, eliminación de tablas, etc.) y adapte los comandos anteriores para que se adapten a su situación. Creo que, si conecta las cosas correctamente, incluso podría omitir el archivo intermedio y conectar mysqldump en el servidor 1 a mysql en el servidor 2 usando un socket.

Para cubrir la parte 'automatizada' de esta pregunta, puede ejecutar los comandos anteriores en cron y programarlos para que se ejecuten el primer día de cada mes en un momento adecuado.