mysql主從同步的配置
主要實現單向主從同步模式的實現,原理圖如下
主庫(master):192.168.221.128
從庫(slave):192.168.221.129
配置步驟:
1)
①、編輯主庫my.cnf文件
[root@master~]# egrep "log-bin|server-id" /etc/my.cnf
server-id = 1 確保和從庫不一樣
log-bin=mysql-bin 需要打開,注意路徑,一般位於data目錄
進入mysql數據庫查看log-bin是否開啟
mysql> show variables like 'log_bin';
②、確保從庫my.cnf里server-id與主庫不同(這里slave的log-bin我沒開啟)
egrep "log-bin|server-id" /etc/my.cnf
2)建立用於從庫復制的賬號rep
mysql> grant replication slave on *.* to 'rep'@'192.168.221.%' identified by '111111';
mysql> flush privileges;
mysql> select user,host from mysql.user;
3)
①、主庫備份數據庫
mysql> flush table with read lock; 加鎖(5.5是table,5.1 是tables注意版本區別)
mysqldump -h 192.168.221.128 -uroot -p111111 -B ss3000cms --events --master-data=2 >/rep.sql
ps:這里我只備份了ss3000cms庫,-B表示備份數據結構和內容,--events表示事件(這里還不是很了解),master-data=2表示sql語句change前加注釋--
②、vi /rep.sql
master查看狀態
確定POS相同后,取消鎖
mysql> unlock tables;
ps:主庫mysql> show variables like 'wait_timeout';是控制鎖表時間的,默認是28800(8小時),
修改語句是set global with_timeout = 10(修改為10s);
4)
①、將主庫備份的sql文件scp到從庫對應目錄(/opt),執行灌數據操作
mysql -uroot -p111111 </opt/rep.sql
②、從庫執行change master語句
CHANGE MASTER TO
MASTER_HOST='192.168.221.128',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='111111',
MASTER_LOG_FILE='mysql-bin.000010',
MASTER_LOG_POS=338;
③、最后從庫打開開關
mysql> start slave;
5)查看狀態
查看線程:mysql>show processlist
master端:mysql>show master status
slave端:mysql>show slave status\G
至此配置完畢,生廠場景需要注意my.cnf參數,如忽略一些錯誤