在centos 6.5上設定了mysql主從功能,記錄一下。
伺服器1(主)
IP:192.168.1.201
系統版本:centos 6.5
mysql版本:mysql 5.5
伺服器2(從)
IP:192.168.1.202
系統版本:centos 6.5
mysql版本:mysql 5.5
這裡兩台伺服器的系統版本和mysql版本均一致,這也是官方推薦的做法。在開始設定之前,最好能確保主庫和從庫一致。
1、主庫和從庫建立同步處理的使用者
mysql> grant replication slave, replication client on *.* to repl@'192.168.1.%' identified by '密碼';
這裡講主從同步限制在區域網路內。
2、主庫配置
編輯mysql設定檔/etc/my.cnf,設定如下配置:
log-bin=mysql-binbinlog_format=mixedserver-id = 1
binlog_format這裡選用混合模式,也是mysql 5.5安裝包裡的my.cnf預設的值。
3、從庫配置
編輯mysql設定檔/etc/my.cnf,設定如下配置:
log-bin=mysql-binbinlog_format=mixedserver-id = 2relay_log = /var/lib/mysql/mysql-relay-binlog_slave_updates = 1read_only = 1
4、從庫啟動
mysql> change master to master_host='192.168.1.201',master_user='repl',master_password='100301',master_log_file='mysql-bin.000001',master_log_pos=0;
開啟同步
mysql> start slave;
查看狀態
mysql> show slave statusG
如果配置全都正確的話,那麼主從就開始工作了。如果主從沒有正常工作的話,可以通過mysql內建的命令進行調試。
出錯調試
使用show slave status查看Last_IO_Error狀態資訊:
mysql> show slave statusG
上面這種情況表示無法正常串連到主庫。因為無法串連主庫,Slave_IO_State會一直顯示Connecting to master。可以在從庫上通過mysql用戶端串連主庫進行調試。
$ mysql -h 主庫 -u repl -p
查看背景工作處理序
主庫上查看進程:
mysql> show processlistG
從State資訊可以看出主庫已經發送完所有的binlog
從庫上查看進程:
mysql> show processlistG
其中一個是I/O線程,一個是SQL線程。