下面介紹MySQL主從復(fù)制,讀寫(xiě)分離,雙主結(jié)構(gòu)完整構(gòu)建過(guò)程,不涉及過(guò)多理論,只有實(shí)驗(yàn)和配置的過(guò)程。
Mysql主從復(fù)制(轉(zhuǎn)載請(qǐng)注明出處,博文地址:)
原理是master將改變記錄到二進(jìn)制日志(binary log),slave將master的binary log拷貝到中繼日志(relay log),slave通過(guò)中繼日志同步master的操作。
1,實(shí)驗(yàn)環(huán)境,實(shí)驗(yàn)有2臺(tái)Ubutu server 14都安裝了mysql服務(wù)器,在相同的IP段
172.16.34.212(主),
172.16.34.156(從).
2,將這兩臺(tái)IP授權(quán),允許其它IP通過(guò)賬號(hào)密碼進(jìn)行訪問(wèn)(如添加個(gè)euht賬號(hào)允許所有外部IP以密碼123456訪問(wèn)),分別登錄進(jìn)兩臺(tái)機(jī)子的mysql執(zhí)行如下語(yǔ)句
Grant all privileges on . to ‘euht’@’%’ identified by ‘123456’ with grant option;
Flush privileges;
注:
①上述代碼的意思是創(chuàng)建一個(gè)euht用戶,host=%,允許所有IP通過(guò)用戶名euht進(jìn)行訪問(wèn)。添加完刷新權(quán)限。
②此時(shí)兩臺(tái)機(jī)子的mysql應(yīng)該是可以相互訪問(wèn)的,如果不可以,導(dǎo)致的原因有很多,最常見(jiàn)的是防火墻沒(méi)關(guān),mysql服務(wù)器綁定了本地地址。通過(guò)如下方法一般可解決問(wèn)題
關(guān)閉防火墻,或開(kāi)放3306端口
更改my.cnf文件,把bind-address注釋掉
vi /etc/mysql/my.cnf
3,找到主服務(wù)器172.16.34.212MySQL安裝文件夾修改my.cnf(etc/mysql/my.cnf)文件,在[mysqld]下面增加下面幾行代碼
server-id=1
log-bin=master-bin
log-bin-index=master-bin.index
保存后重啟mysql(service mysql restart;)
注:如果只需要同步特定的庫(kù),如上添加代碼,binlog-do-db =euht ,用于master-slave的具體數(shù)據(jù)庫(kù)
4,進(jìn)入mysql后,查看主服務(wù)器mysql master狀態(tài),日志File為master-bin.000001,Position為107(記下這兩個(gè)值,后面進(jìn)行從服務(wù)器操作的時(shí)候需要用到)
5,配置從服務(wù)器(172.16.34.156)
同樣配置從服務(wù)器允許外部IP訪問(wèn)(參考第2點(diǎn))
配置日志文件