Jak je uvedeno v otázce, synchronizovat vše data z jednoho serveru na druhý, myslím, že můžete použít relativně jednoduché řešení zahrnující mysqldump
.
Myslím, že to všechno můžete udělat z dedikovaného serveru:
mysqldump --user=<username> --password=<password> --host=<server 1 hostname> --port=<port> --add-drop-database <database name> > dump.sql
Nahraďte <username>
, <password>
, <port>
a <server 1 hostname>
s podrobnostmi o připojení k serveru 1. Nahraďte názvem databáze na serveru 1, kterou chcete zkopírovat na server 2. Pokud chcete zkopírovat celou databázi, nahraďte ji volbou --all-databases.
Tím vytvoříte soubor s názvem dump.sql
v aktuálním adresáři. Toto pak můžete načíst na server 2:
mysql --user=<username> --password=<password> --host=<server 2 hostname> --port=<port> <database name> < dump.sql
Nahraďte <username>
, <password>
, <port>
a <server 2 hostname>
s podrobnostmi o připojení k serveru 2.
Tím se vezme soubor dump.sql a načte se do databáze na serveru 2. Tím se databáze upustí na server 2 - takže všechna existující data budou nahrazena daty v dump.sql
.
Zkontrolujte možnosti mysqldump (ohledně drop databází, drop tabulek atd.) a upravte výše uvedené příkazy tak, aby byly vhodné pro vaši situaci. Myslím, že pokud věci správně zapojíte, můžete dokonce obejít přechodný soubor a připojit mysqldump na serveru 1 k mysql na serveru 2 pomocí zásuvky.
Chcete-li pokrýt „automatizovanou“ část této otázky, můžete výše uvedené příkazy spustit pod cronem a naplánovat jejich spuštění na první den každého měsíce ve vhodnou dobu.