Wie die Frage besagt, alle zu synchronisieren Daten von einem Server zu einem anderen zu übertragen, denke ich, dass Sie eine relativ einfache Lösung verwenden können, die mysqldump
beinhaltet .
Ich denke, Sie können dies alles vom dedizierten Server aus tun:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql
Ersetzen Sie <username>
, <password>
, <port>
und <server 1 hostname>
durch die Verbindungsdetails für Server 1. Ersetzen Sie durch den Namen der Datenbank auf Server 1, die Sie auf Server 2 kopieren möchten. Wenn Sie alle Datenbanken kopieren möchten, ersetzen Sie durch die Option --all-databases.
Dadurch wird eine Datei namens dump.sql
erstellt im aktuellen Verzeichnis. Diese können Sie dann auf Server 2 laden:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql
Ersetzen Sie <username>
, <password>
, <port>
und <server 2 hostname>
mit den Verbindungsdetails für Server 2.
Dadurch wird die dump.sql-Datei genommen und in die Datenbank auf Server 2 geladen. Dadurch wird die Datenbank auf Server 2 abgelegt – also werden alle vorhandenen Daten durch die in dump.sql
ersetzt .
Überprüfen Sie die Optionen für mysqldump (in Bezug auf Drop-Datenbanken, Drop-Tabellen usw.) und passen Sie die obigen Befehle an, damit sie für Ihre Situation geeignet sind. Ich denke, wenn Sie die Dinge richtig anschließen, könnten Sie sogar die Zwischendatei umgehen und mysqldump auf Server 1 über einen Socket mit mysql auf Server 2 verbinden.
Um den 'automatisierten' Teil dieser Frage abzudecken, könnten Sie die obigen Befehle unter cron ausführen und sie so planen, dass sie am ersten Tag jedes Monats zu einer geeigneten Zeit ausgeführt werden.