環境:
A、B兩台伺服器分別安裝mysql-5.7.18服務端,設定成互為主從同步。
linux系統版本為CentOS7
A伺服器ip:192.168.1.7 主機名稱:test1
B伺服器ip:192.168.1.8 主機名稱:test2
。 #(同一區域網路下)一、準備 1.修改主機名稱 指令:hostnamectl set-hostname xxx (檢視主機名稱指令:hostname) 2.關閉防火牆 1)查看防火牆狀態 指令:firewall-cmd --state#state# 指令:firewall-cmd --state
state#」
2)防火牆是運作狀態,先關閉防火牆服務 指令:systemctl mask firewalld
3)關閉防火牆#ff##」指令#d6p ## 4)檢查防火牆狀態
指令:firewall-cmd --state
指令:firewall-cmd --state
策略結果:not running
策略結果:not running
策略結果:not running
##
# ##L#se#17),需編輯 檔案vi /etc/sysconfig/selinux修改SELINUX=disabled3)為關閉狀態
3)為關閉狀態
3)為關閉狀態## 主伺服器(master)從伺服器(slave) 1.開啟A伺服器的my.cnf檔案vi /etc/my.cnf,在檔案的[mysqld]下新增如下內容# server-id=1 #必須與其他伺服器不同,且必須為1~232之間的正整數值log-bin=mysql-bin log-bin-index=mysql-bin
在伺服器my.cnf檔案中的伺服器[ mysqld]下加入上圖內容,只更改server-id值即可。
server-id=2 log-bin=mysql-bin log-bin-index=mysql-bin
2.在A伺服器中的mysql安裝路徑下(rpm安裝路徑為/var/lib/mysql)建立全庫備份檔all.sql。
touch /var/lib/mysql/all.sql
[root@test1 mysql]# mysqldump -uroot -p123 --all-databases > /var/lib/mysql/all.sql
復原指令:
[root@test2 /]# mysql -uroot -p123 < /var/lib/mysql/all.sql
3.在A、B伺服器的mysql中建立使用者用於同步。
創建用戶:
mysql> create user 'tongbu'@'%' identified by 'tongbu';
授權:
mysql> grant all on *.* to 'tongbu'@'%';
刪除用戶:
mysql> drop user '用户名'@'%';
[root@test1 /]# mysql -utongbu -ptongbu -h192.168.1.8 [root@test2 /]# mysql -utongbu -ptongbu -h192.168.1.7
mysql> stop slave; mysql> change master to -> master_host='192.168.1.7', -> master_user='tongbu', -> master_password='tongbu', -> master_log_file='mysql-bin.000024', -> master_log_pos=154; mysql> start slave;
mysql> stop slave; mysql> change master to -> master_host='192.168.1.8', -> master_user='tongbu', -> master_password='tongbu', -> master_log_file='mysql-bin.000027', -> master_log_pos=154; mysql> start slave; mysql> show slave status\G 查看Slave_IO_Running和Slave_SQL_Running的值是否为Yes
slave-skip-errors = 1062,1032,1060
mysql >slave stop; mysql >SET GLOBAL sql_slave_skip_counter = 1; mysql >slave start;
主键冲突、表已存在等错误代码如1062,1032,1060等,可以在mysql配置文件指定略过此类异常并继续下条sql同步,这样可以避免很多主从同步的异常中断。打开/etc/ mysql下的my.cnf文件,在[mysqld]后添加如下代码:
slave-skip-errors = 1062,1032,1060
3. 跳过异常恢复同步
mysql >slave stop; mysql >SET GLOBAL sql_slave_skip_counter = 1; mysql >slave start;
以上是MYSQL雙主全函式庫同步複製的範例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!