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