sql >> Databasteknik >  >> RDS >> Mysql

Hur man synkroniserar en MySQL-databaser mellan två fjärrdatabaser (utan MySQL-databasreplikeringsteknik)

Som frågan anger för att synkronisera alla data från en server till en annan, jag tror att du kan använda en relativt enkel lösning, som involverar mysqldump .

Jag tror att du kan göra allt från den dedikerade servern:

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

Ersätt , , och med anslutningsdetaljerna för server 1. Ersätt med namnet på databasen på server 1 som du vill kopiera till server 2. Om du vill kopiera all databas, ersätt med alternativet --all-databases.

Detta kommer att skapa en fil som heter dump.sql i den aktuella katalogen. Du kan sedan ladda detta till server 2:

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

Ersätt , , och med anslutningsinformationen för server 2.

Detta tar filen dump.sql och laddar in den i databasen på server 2. Detta kommer att ta bort databasen på server 2 - så all befintlig data kommer att ersättas med den i dump.sql .

Kontrollera alternativen för mysqldump (avseende släppdatabaser, släpptabeller etc) och skräddarsy kommandona ovan för att passa din situation. Jag tror att om du ansluter saker på rätt sätt kan du till och med kringgå mellanfilen och ansluta mysqldump på server 1 till mysql på server 2 med en socket.

För att täcka den "automatiserade" delen av denna fråga kan du köra ovanstående kommandon under cron och schemalägga dem att köras den första dagen i varje månad vid en lämplig tidpunkt.



  1. Hur kan jag skriva ut SQL-frågan som körs efter att Perls DBI har fyllt i platshållarna?

  2. Vilket läge för MySQL WEEK() uppfyller ISO 8601

  3. Hur man undertrycker INFO-meddelanden när man kör psql-skript

  4. Hur man separerar en post för att få beloppet