天天看點

MySQL 5.7 主從配置

MySQL進行主從配置可以降低伺服器壓力,提高伺服器的可用性。設定步驟如下:

環境:

伺服器1:Centos Linux 7.3 ip: 172.16.0.102

伺服器2:Centos Linux 7.3 ip: 172.16.0.104

MySQL:mysql5.7.18

1,配置主伺服器

修改/etc下的修改my.cnf檔案,在[mysqld]下面增加下面幾行,然後重新開機MySQL資料庫。

#server-id給資料庫服務的唯一辨別
server-id=1

#log-bin設定此參數表示啟用binlog功能,并指定路徑名稱
log-bin=/var/lib/mysql/mysql-bin
sync_binlog=0
#設定日志的過期天數
expire_logs_days=7
#binlog_cache_size此參數表示binlog使用的記憶體大小
binlog_cache_size=1M
           

在Master MySQL上建立一個使用者‘repl’,并允許其他Slave伺服器可以通過遠端通路Master,通過該使用者讀取二進制日志,實作資料同步。

mysql> create user 'repl'@'172.16.%' identified by 'L*****@2*8#3&7';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.16.%';
           

重新開機mysql使配置生效

mysql> show master status;
           
MySQL 5.7 主從配置

2,配置從伺服器

修改/etc下的修改my.cnf檔案,在[mysqld]下面增加下面幾行,然後重新開機MySQL資料庫。

#server-id給資料庫服務的唯一辨別
server-id=2
#read_only設定資料庫為隻讀,防止從庫資料修改後,主從資料不一緻,但是有Super權限的賬号還是有寫的權限,是以要某個賬号隻讀的話,可以去掉賬号的Super權限
read_only=1

#指定需要同步的表
replicate-wild-do-table=ljzxdb.%
#binlog_cache_size此參數表示binlog使用的記憶體大小
binlog_cache_size=1M
           

重新開機mysql使配置生效

然後連接配接主庫

mysql> CHANGE MASTER TO MASTER_HOST='172.16.0.102', MASTER_USER='repl', MASTER_PASSWORD='[email protected]*8#3&7', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=15051;

           

啟動同步

mysql> start slave;
           

檢視從庫狀态

mysql> show slave status \G;
           
MySQL 5.7 主從配置

觀察這兩個值是否都是yes,Slave_IO_Running: Yes 和Slave_SQL_Running: Yes,如果都是yes,說明運作正常。

如果出現同步失敗,可以根據提示處理錯誤,處理完成後,需要重新整理同步配置:

先停止同步

mysql> stop slave;
           

清理掉之前的配置,防止同步已經同步了的資料

mysql> reset slave all;
           

然後重新連接配接主庫,進行同步。

繼續閱讀