Mysql
 sql >> Database >  >> RDS >> Mysql

Come sincronizzare un database MySQL tra due database remoti (senza la tecnica di replica del database MySQL)

Come afferma la domanda, sincronizza tutto dati da un server all'altro, penso che tu possa usare una soluzione relativamente semplice, che coinvolge mysqldump .

Penso che tu possa fare tutto questo dal server dedicato:

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

Sostituisci <username> , <password> , <port> e <server 1 hostname> con i dettagli di connessione per il server 1. Sostituisci con il nome del database sul server 1 che desideri copiare sul server 2. Se desideri copiare tutti i database, sostituisci con l'opzione --all-databases.

Questo creerà un file chiamato dump.sql nella directory corrente. Puoi quindi caricarlo nel server 2:

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

Sostituisci <username> , <password> , <port> e <server 2 hostname> con i dettagli di connessione per il server 2.

Questo prenderà il file dump.sql e lo caricherà nel database sul server 2. Ciò rilascerà il database sul server 2, quindi tutti i dati esistenti verranno sostituiti con quelli in dump.sql .

Controlla le opzioni di mysqldump (riguardanti i database di rilascio, le tabelle di rilascio ecc.) E adatta i comandi sopra in modo che siano adatti alla tua situazione. Penso che, se colleghi le cose correttamente, potresti persino bypassare il file intermedio e connettere mysqldump sul server 1 a mysql sul server 2 usando un socket.

Per coprire la parte "automatizzata" di questa domanda, puoi eseguire i comandi precedenti sotto cron e programmarli per l'esecuzione il primo giorno di ogni mese a un'ora adeguata.