mysql 一主多從配置說明
背景
mysql 一主多從的場景是經常見的,具體的業務場景裡我們一般讀的壓力遠遠是大於寫的壓力,master我們可以用來做寫操作,slave用來做讀操作、備份,可以做到資料庫的負載均衡。
同步複製過程說明
(1) master將改變記錄到二進位制日誌(binary log)中(這些記錄叫做二進位制日誌事件,binary log events);
(2) slave將master的binary log events拷貝到它的中繼日誌(relay log);
(3) slave重做中繼日誌中的事件,將改變反映它自己的資料。
1、主資料庫master
#半同步外掛的安裝
在Master上執行:
mysql> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
各個Slave上執行:
mysql> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
1.1、my.cnf 檔案配置
log-bin=mysql-master-bin
#slave更新時是否記錄到日誌中
#binlog-slave-updates=true
server-id = 129
binlog-do-db=powerdb
#開啟半同步
rpl_semi_sync_master_enabled=ON
#
#slave不需要同步資料庫
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema
#
<如需要同步多個庫,需要另行重寫,如果要同步所有資料庫則不用寫>
binlog-do-db=powerdb
不需要同步的資料庫,與binlog-do-db正好相反,如果你有100個庫,只想同步其中幾個,
那麼你應該使用binlog-do-db,如果不想同步其中的幾個,就使用binlog-ignore-db
(資料庫安裝包不同這個選項有的配置檔案裡沒有,需要加上)
1.2、建立使用者用於主從同步的資料庫
建立slave128賬戶 密碼root ip 192.168.119.128可以訪問
mysql> grant replication slave,super,reload on *.* to
[email protected] identified by 'root';
1.3 、檢視狀態
show master status;
1.4 檢視已連線的slave節點資料庫
show slave hosts;
1.5 檢視binlog日誌
show binary logs;
2.從資料庫配置 (slave)
2.1 my.cnf 檔案配置
log-bin=mysql-slave-bin
binlog_format=mixed
#開啟半同步
rpl_semi_sync_slave_enabled=1
server-id = 128
replicate-do-db=powerdb
#slave不需要同步資料庫
replicate-ignore-db=information_schema
replicate-ignore-db=mysql
replicate-ignore-db=performance_schema
2.2 修改master指向
mysql> change master to master_host='192.168.119.129', master_user='slave128', master_password='root';
2.3 啟動或者關閉 slave 節點
mysql>start slave;
mysql>start stop;
2.4 檢視節點狀態
mysql> show slave status \G;
到這裡基本就成功了,自己可以試試在主資料庫裡寫資料,從資料庫裡是不是有資料更新了。配置多個從節點也安裝這個配置就可以了,需要注意是,需要更新的操作都必須在master資料庫操作,以避免使用者對主伺服器上的表進行的更新與對從伺服器上的表所進行的更新之間的衝突;