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

Sådan synkroniseres en MySQL-database mellem to fjerndatabaser (uden MySQL-databasereplikeringsteknik)

Som spørgsmålet siger, skal du synkronisere alle data fra en server til en anden, tror jeg, du kan bruge en relativt simpel løsning, der involverer mysqldump .

Jeg tror, ​​du kan gøre alt dette fra den dedikerede server:

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

Erstat , , og med forbindelsesdetaljerne for server 1. Erstat med navnet på databasen på server 1, du vil kopiere til server 2. Hvis du vil kopiere hele databasen, skal du erstatte med muligheden --all-databases.

Dette vil lave en fil kaldet dump.sql i den aktuelle mappe. Du kan derefter indlæse dette på server 2:

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

Erstat , , og med forbindelsesdetaljerne for server 2.

Dette vil tage dump.sql-filen og indlæse den i databasen på server 2. Dette vil droppe databasen på server 2 - så alle eksisterende data vil blive erstattet med dem i dump.sql .

Tjek mulighederne for mysqldump (vedrørende drop-databaser, drop-tabeller osv.) og skræddersy ovenstående kommandoer, så de passer til din situation. Jeg tror, ​​at hvis du tilslutter tingene korrekt, kan du endda omgå mellemfilen og forbinde mysqldump på server 1 til mysql på server 2 ved hjælp af en socket.

For at dække den 'automatiserede' del af dette spørgsmål kan du køre ovenstående kommandoer under cron og planlægge dem til at køre den første dag i hver måned på et passende tidspunkt.



  1. Oracle indsæt fra vælg i tabel med flere kolonner

  2. indstillinger for sagsudsagn opdelt på to outputkolonner

  3. mysql opdateringstabel ajax efter klasse

  4. ORACLE Sådan bruges spole med dynamisk spoleplacering