兩臺(tái)電腦如何實(shí)現(xiàn)MySQL的數(shù)據(jù)同步呢?這是一件非常實(shí)用的事情,因?yàn)楹芏鄷r(shí)候我們需要在不同的電腦上使用同一個(gè)數(shù)據(jù)庫。接下來,我們就來講解一下如何實(shí)現(xiàn)這個(gè)過程。
首先需要明確的是,MySQL的數(shù)據(jù)同步可以采用多種方案,例如使用主從復(fù)制,使用Galera Cluster,使用MySQL Cluster等等。不同的方案適用不同的場(chǎng)景和需求,這里我們將以主從復(fù)制為例。主從復(fù)制是MySQL內(nèi)置的一個(gè)復(fù)制方式,它可以實(shí)現(xiàn)將一臺(tái)MySQL服務(wù)器的數(shù)據(jù)復(fù)制到另一臺(tái)MySQL服務(wù)器上。
下面是具體步驟:
1、在主服務(wù)器上創(chuàng)建一個(gè)用于備份的賬號(hào),并賦予REPLICATION SLAVE權(quán)限;
CREATE USER 'backup'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%'; FLUSH PRIVILEGES;2、在主服務(wù)器上查看當(dāng)前的二進(jìn)制日志文件和位置,以便在從服務(wù)器上執(zhí)行同步操作時(shí)使用;
SHOW MASTER STATUS;3、在從服務(wù)器上創(chuàng)建一個(gè)用于同步數(shù)據(jù)的賬號(hào),并賦予REPLICATION CLIENT權(quán)限;
CREATE USER 'sync'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION CLIENT ON *.* TO 'sync'@'%'; FLUSH PRIVILEGES;4、在從服務(wù)器上執(zhí)行同步操作,將主服務(wù)器上的數(shù)據(jù)復(fù)制到從服務(wù)器上;
CHANGE MASTER TO MASTER_HOST='192.168.1.2', MASTER_USER='backup', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; START SLAVE;上述代碼中,MASTER_HOST為主服務(wù)器IP地址,MASTER_USER和MASTER_PASSWORD為之前在主服務(wù)器上創(chuàng)建的備份賬號(hào)信息,MASTER_LOG_FILE和MASTER_LOG_POS分別為之前在主服務(wù)器上查看到的二進(jìn)制日志文件和位置。 5、同步操作完成后,我們還需要在從服務(wù)器上開啟binlog,以便將更改同步回主服務(wù)器;
vim /etc/my.cnf 在[mysqld]段中加入: log-bin=mysql-bin server-id=2 重啟MySQL服務(wù)。 在主服務(wù)器上創(chuàng)建用于同步的從服務(wù)器賬號(hào),賦予REPLICATION SLAVE權(quán)限; CREATE USER 'sync'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'sync'@'%'; FLUSH PRIVILEGES;至此,兩臺(tái)電腦MySQL數(shù)據(jù)同步就完成了。當(dāng)主服務(wù)器的數(shù)據(jù)有更改時(shí),從服務(wù)器會(huì)自動(dòng)將數(shù)據(jù)同步回來,保持兩臺(tái)服務(wù)器的數(shù)據(jù)同步。
下一篇mysql 分組鏈接