centos 7 配置mysql5.6.43主從同步

實驗環境centos7安裝mysql5.6.43爲例
兩臺虛擬機配置一樣
主:192.168.238.140
從:192.168.238.141
因爲centos7版本沒有my.cnf文件,這裏我們安裝的mysql5.6.43默認文件在/usr/share/mysql/下的my-default.cnf
所以我們將my-default.cnf cp到/etc/下並修改成my.cnf

一、配置master主庫
1.[root@localhost ~]# vim /etc/my.cnf
文件內容
log-bin=mysql-bin #開啓二進制日誌
server-id=140 #標識唯一id(必須),一般使用ip最後位
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=anchent #指定需要同步的數據庫(和slave是相互匹配的),可以設置多個
binlog_format=MIXED #設置存儲模式不設置默認
expire_logs_days=7 #日誌清理時間
max_binlog_size=100m #日誌大小
binlog_cache_size=4m #緩存大小
max_binlog_cache_size=521m #最大緩存大小

2.重啓mysql
systemctl restart msyql

3.進去mysql設置允許從庫獲得主庫日誌  注:這裏使用root用戶配置,不建議使用,正常使用新創建的用戶進行授權
[root@localhost ~]# mysql -u root -p

#給從庫放權限
mysql>GRANT FILE ON . TO 'root'@'192.168.238.141' IDENTIFIED BY 'root password';   #創建用戶
mysql>GRANT REPLICATION SLAVE ON . TO 'root'@'192.168.238.141' IDENTIFIED BY 'root password';  #修改用戶權限
mysql>select host,user,password from mysql.user;  #查看是否修改成功
mysql>FLUSH PRIVILEGES;   #刷新
注,在這裏我們同步的是庫anchent,如果沒有這個庫的話,需要新建下。

4.重啓MySQL,登錄MySQL,查看主庫信息
mysql> show master status;

 注:如果執行這個步驟始終爲Empty set(0.00 sec),那說明前面的my.cnf沒配置對

二、從庫配置
1.在my.cnf中修改配置文件
[root@localhost ~]# vim /etc/my.cnf
log-bin=mysql-bin
server-id=141 #標識唯一id(必須),一般使用ip最後位
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql #與主庫配置一直
replicate-do-db=anchent #這裏同步的庫爲anchent,需要和從庫一致
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

2.重啓mysql,登陸mysql
mysql> stop slave; #關閉Slave
mysql> change master to
master_host='192.168.238.140',master_user='root',master_password='rootpassword',master_log_file='mysql-bin.000003', master_log_pos=120; #設置連接主庫信息
mysql> start slave; #開啓Slave
注:上面的master_log_file是在配置Master的時候的File字段, master_log_pos是在配置Master的Position 字段。一定要一一對應

3.查看信息
mysql> show slave status\G;

至此主從同步已經配置完成,可在主庫anchent中去測試加刪改,看從庫中是否同步。如不能同步需要進一步去排查。

這裏添加我在配置過程中遇到的幾個問題
1.因爲我是用虛擬機直接克隆過的,所以報以下錯誤

Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
提示主從UUID錯誤,主和從庫的uuid編號必須是一致的。
修改如下:
[root@localhost ~]# vim /var/lib/mysql/auto.cnf

改成不一樣及可

2.從庫用戶沒有權限訪問主庫
出現以下報錯
error connecting to master '[email protected]:3306' - retry-time: 60 retries: 1
解決方法,查看主庫是否授權,查看change master to... 是否有用戶密碼ip填寫錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章