Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como sincronizar um banco de dados MySQL entre dois bancos de dados remotos (sem técnica de replicação de banco de dados MySQL)


Como a pergunta indica para sincronizar todos dados de um servidor para outro, acho que você pode usar uma solução relativamente simples, envolvendo mysqldump .

Acho que você pode fazer tudo isso no servidor dedicado:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql

Substitua <username> , <password> , <port> e <server 1 hostname> com os detalhes de conexão do servidor 1. Substitua pelo nome do banco de dados no servidor 1 que você deseja copiar para o servidor 2. Se desejar copiar todo o banco de dados, substitua pela opção --all-databases.

Isso criará um arquivo chamado dump.sql no diretório atual. Você pode então carregar isso no servidor 2:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql

Substitua <username> , <password> , <port> e <server 2 hostname> com os detalhes de conexão para o servidor 2.

Isto irá pegar o arquivo dump.sql e carregá-lo no banco de dados no servidor 2. Isto irá remover o banco de dados no servidor 2 - então todos os dados existentes serão substituídos por aqueles em dump.sql .

Verifique as opções para mysqldump (com relação a bancos de dados drop, tabelas drop etc) e adapte os comandos acima para serem adequados à sua situação. Eu acho que, se você conectar as coisas corretamente, você pode até ignorar o arquivo intermediário e conectar o mysqldump no servidor 1 ao mysql no servidor 2 usando um soquete.

Para cobrir a parte 'automatizada' desta questão, você pode executar os comandos acima no cron e agendá-los para serem executados no primeiro dia de cada mês em um horário adequado.