MySQL是當前應用最廣泛的數據庫之一,不過在大多數情況下,單個MySQL數據庫并不足以滿足需求,為了提高性能,并保證數據可用性,通常會使用多個MySQL數據庫。但是問題來了,如何保證多個MySQL數據庫間的數據同步呢?
MySQL數據庫同步是指將一個MySQL數據庫中的數據復制到另一個MySQL數據庫中,從而保證多個數據庫中的數據總是保持完全一致,不會因某個數據庫故障導致數據丟失。這種同步方式稱為MySQL Master-Slave同步。
在Master-Slave同步中,Master是主數據庫,它負責寫操作。而Slave是從數據庫,它負責讀操作。Master將自己的寫操作發給Slave,Slave在接收到Master發來的寫操作后,就將它復制到自己的數據庫中,從而達到數據同步的效果。
//示例1:建立Master-Slave同步 //在Master服務器上執行 GRANT REPLICATION SLAVE ON *.* TO 'slaveUser'@'192.168.1.%' IDENTIFIED BY 'password'; //在Slave服務器上執行 CHANGE MASTER TO MASTER_HOST='master_host_ip',MASTER_USER='slaveUser',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=328; START SLAVE; //示例2:查看同步狀態 SHOW STATUS LIKE 'Slave_running'; SHOW SLAVE STATUS\G;
上述代碼示例是建立Master-Slave同步,并查看同步狀態。其中,'slaveUser'是在Master數據庫授權給Slave數據庫的用戶名,'password'是該用戶的密碼。'master_host_ip'是Master數據庫所在的IP地址,'mysql-bin.000004'是Master數據庫中的二進制日志文件,'328'是該日志文件中最后一次操作的位置。
總的來說,MySQL數據庫同步使用Master-Slave模式是最常見的方式。通過這種方式,可以保證多個MySQL數據庫之間的數據始終保持同步,從而提高性能和可用性。