maxscale項(xiàng)目如何接入?
配置思路
1. 修改master和slave的配置文件,使用二進(jìn)制日志,指定serverid
目的是讓各自都有了自己的唯一標(biāo)示,并以二進(jìn)制文件格式進(jìn)行交流
2. master中創(chuàng)建授權(quán)用戶,查看二進(jìn)制日志文件名,及最新位置
讓slave知道用哪個(gè)用戶信息訪問(wèn)master,知道讀取哪個(gè)日志文件,及從哪兒開(kāi)始讀
3. slave中使用被授權(quán)用戶信息及日志文件信息,進(jìn)行指向master
這時(shí)已經(jīng)建立了和master的聯(lián)系,明確了從哪兒讀取日志文件
3. 執(zhí)行啟動(dòng)slave的命令,開(kāi)始主從復(fù)制,并查看復(fù)制狀態(tài)信息
準(zhǔn)備條件
停止對(duì)master數(shù)據(jù)庫(kù)的操作
把master中的數(shù)據(jù)庫(kù)全部導(dǎo)入到slave,使兩邊數(shù)據(jù)庫(kù)完全一致
配置步驟
1. 修改配置文件 my.cnf
master:
[mysqld]
log-bin=mysql-bin //[必須]啟用二進(jìn)制日志
server-id=222 //[必須]服務(wù)器唯一ID,默認(rèn)是1,一般取IP最后一段
slave:
[mysqld]
log-bin=mysql-bin
server-id=226
2. 重新啟動(dòng)兩臺(tái)服務(wù)器的mysql
3. master創(chuàng)建授權(quán)用戶
登陸主服務(wù)器mysql命令行,創(chuàng)建一個(gè)用于從服務(wù)器復(fù)制的用戶
mysql>GRANT REPLICATION SLAVE ON *.* to '用戶名'@'%' identified by '密碼';
"*.*"表示對(duì)所有庫(kù)的所有操作,“%”表示所有客戶端都可能連,也可用具體客戶端IP代替,如192.168.145.226,加強(qiáng)安全
4. 查看master狀態(tài)
登陸主服務(wù)器mysql命令行
mysql>show master status;
+-------------------------+----------+
File | Position
+-------------------------+----------+
mysql-bin.000002 | 1308
+-------------------------+----------+
mysql-bin.000004 是用于主從復(fù)制的文件名
1308 是日志文件內(nèi)的最新位置
5. slave指向master
登陸從服務(wù)器mysql命令行,使用之前創(chuàng)建的用戶和master的日志文件及其位置
mysql>change master to master_host='master ip',master_user='用戶名',master_password='密碼',
master_log_file='mysql-bin.000002',master_log_pos=1308; //注意不要斷開(kāi),“1308”無(wú)單引號(hào)。
6. 啟動(dòng)slave
mysql>start slave;
7. 查看slave狀態(tài)
mysql> show slave status\G;
結(jié)果中有兩個(gè)重要數(shù)據(jù)項(xiàng):
常見(jiàn)的問(wèn)題是SQL線程沒(méi)有正常工作 Slave_SQL_Running: No
通常是兩邊的數(shù)據(jù)庫(kù)不是完全對(duì)應(yīng)的,需要確保master上的庫(kù)及到目前為止的最新記錄都復(fù)制到slave上了
8. 測(cè)試
當(dāng)IO線程和SQL線程都正常后,到master中隨意測(cè)試下插入、修改、刪除操作,同時(shí)到slave中檢查
1) Slave_IO_Running: Yes
IO線程狀態(tài),必須YES
2) Slave_SQL_Running: Yes
SQL線程狀態(tài),必須YES