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;