Synchronizacja tabel MYSQL

Kopiowanie schematu tabeli

mysqldump -u [użytkownik] -p --no-data [nazwa_bazy] > schemat.sql

Zapytania SQL na poziomie serwera

Jeśli obie bazy znajdują się na tym samym serwerze MySQL, możesz użyć prostych zapytań SQL do synchronizacji:

INSERT INTO target_database.target_table (col1, col2, col3)
SELECT col1, col2, col3 FROM source_database.source_table
ON DUPLICATE KEY UPDATE 
    col1 = VALUES(col1), 
    col2 = VALUES(col2), 
    col3 = VALUES(col3);

Automatyczna synchronizacja z Event Scheduler

Jeśli chcesz, aby synchronizacja działała automatycznie co jakiś czas, możesz stworzyć zadanie wbudowane w MySQL:

Krok 1: Włącz Event Scheduler

Upewnij się, że Event Scheduler jest włączony:

SET GLOBAL event_scheduler = ON;

Krok 2: Utwórz zdarzenie (Event)

Stwórz zdarzenie, które będzie synchronizować tabelę, np. co godzinę:

CREATE EVENT sync_table_event
ON SCHEDULE EVERY 1 HOUR
DO
INSERT INTO target_database.target_table (col1, col2, col3)
SELECT col1, col2, col3 FROM source_database.source_table
ON DUPLICATE KEY UPDATE
col1 = VALUES(col1),
col2 = VALUES(col2),
col3 = VALUES(col3);
  • Zmieniasz harmonogram (EVERY 1 HOUR) w zależności od potrzeb.
  • Zdarzenie będzie działało automatycznie.

Krok 3: Sprawdź aktywne zdarzenia

Możesz sprawdzić utworzone zdarzenia za pomocą:

SHOW EVENTS;