MySQL5.6 主從複製配置
環境說明:
兩台安裝在CentOS6.5的MySQL5.6.21伺服器:master 和 slave
Master伺服器:
IP:192.168.80.51
Port:3316
Slave 伺服器:
IP:192.168.80.52
Port:3316
配置步驟:
1、修改master的my.cnf設定檔,開啟記錄日誌並設定server-id。
2、修改slave的my.cnf設定檔,開啟讀取二進位日誌並設定server-id。
3、在slave上啟動slave與master的串連。
4、檢查是否配置成功與排錯。
1、修改 master 的my.cnf設定檔,在[mysqld]下添加如下配置:
[mysqld]
log-bin=/usr/local/mysql56/binlog/master-bin
log-bin-index=/usr/local/mysql56/binlog/master-bin.index
server-id=1
說明:
log-bin 配置的是開啟二進位日誌,並將日誌寫在配置的路徑上。記錄的日誌將以master-bin.000001 的方式進行記錄。
log-bin-index 配置的是二進位日誌記錄檔案的目錄。該檔案中每一行都是二進位記錄檔的路徑。
server-id是該MySQL伺服器的服務ID,用於區分在主從配置中的其他伺服器。
配置成功後,重啟mysqld服務。
注意:如果不定義log-bin的檔案名稱,則會以hostname主機名稱命名,一旦主機名稱修改,則會因為找不見二進位檔案報錯。所以最好還是顯示指定檔案名稱。
2、修改 slave 的my.cnf設定檔,在[mysqld]下添加如下配置:
server-id=11
relay-log=/usr/local/mysql56/binlog/slave-relay-bin
relay-log-index=/usr/local/mysql56/binlog/slave-relay-bin.index
server-id和master意義一樣,用於區分不同的mysql伺服器。
relay-log用以記錄收到的中繼二進位日誌。relay-log-index用以儲存收到的日誌路徑索引。如果不顯示指定檔案名稱,則以hostname值命名。
儲存後可以重啟mysqld服務。
3、在slave上啟動slave與master的串連。
在slave上登入到mysql,在mysql>:下進行操作。
1.1、mysql>stop slave; //停止slave。
2.2、mysql>change master to
->master_host=’192.168.80.51’, //注意有個逗號
->master_port=3316,
->master_user=’root’,
->master_password=’root’;
1.3、mysql>start slave;
4、檢查是否配置成功與排錯
mysql>show slave status \G;
在列印出來的狀態下,查看以下兩個參數的值:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果這兩個參數的值都是yes,則運行正常,可以在master資料庫上添加一個資料庫或者添加一張表,檢查slave資料庫上是否存在。
如果 這兩個參數有任何一個不是 Yes,則說明存在問題。可以查看slave上的資料庫錯誤記錄檔檔案查看錯誤原因。
常見的錯誤原因:
1、server-id 一致。
2、使用者權限不夠。需要的許可權包括:REPLICATION SLAVE,RELOAD,CREATE USER,SUPER。
GRANT REPLICATION SLAVE,RELOAD,CREATE USER,SUPER ON *.* TO {USER}@{IP_ADDR} WITH GRANT OPTION;
3、資料庫UUID一致,如果mysql安裝時是通過批量複製安裝的,則有可能資料庫的UUID一致,進入資料庫的datadir目錄,修改auto.cnf。隨意修改下uuid中的值,重啟mysqld服務即可。
4、Master資料庫連接埠被防火牆阻擋。
本文永久更新連結地址: