MySQL5.7 搭建主從同步

性能更好的新服務器申請下來了,咱們決定在2臺新服務器上使用mysql5.7,而且使用主從同步、讀寫分離架構,很不幸這個任務落到了個人頭上。讀寫分離是在業務代碼中實現的,在此不作詳述,介紹一下我搭建MySQL主從的過程。mysql

 

環境介紹:sql

Master 10.20.66.150服務器

Slave    10.20.66.151架構

端口都是3306socket

 

一.修改主庫的配置 vi /etc/my.cnfide

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock symbolic-links=0 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid init_connect='SET collation_connection = utf8mb4_unicode_ci' init_connect='SET NAMES utf8mb4' character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake server-id=2 log-bin=log binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=sys

須要注意的點:性能

1.爲了兼容emoji等特殊字節符,配置中使用utf8mb4編碼測試

2.與主從相關的配置在整個配置的最下邊,主庫和從庫的server-id必須不一樣編碼

3.binlog-ignore-db設置不須要同步的庫spa

 

二.建立用於主從同步的帳戶

1.登陸MySQL    mysql -uroot -p

2.create user 'sync'@'%' identified by 'Sync!0000';    (5.7要求密碼必須含有大小寫英文,符號和數字)

3.grant FILe on *.* to 'sync'@'10.20.66.151' identified by 'Sync!0000';   (賦予FILE權限,容許從從庫ip訪問主庫)

4.grant replication slave on *.* to 'sync'@'10.20.66.151' identified by 'Sync!0000';   (賦予主從同步權限)

5.flush privileges;

6.重啓mysql

 

三.查看主庫狀態,記錄必要信息

1.登陸MySQL

2.show master status; 記錄File和Position對應的信息,我這裏是log.000006和151

 

四.修改從庫配置

 

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake

server-id=3
log-bin=mysql-bin
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
replicate-ignore-db=sys
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

 

注意事項和主庫配置相同,使用replicate-ignore-db標記出不須要同步的庫

 

五.配置同步帳號

1.systemctl restart mysql    (重啓MySQL),而後進入MySQL

2.stop slave;

3.change master to master_host='10.20.66.150', master_user='sync',master_password='Sync!0000',master_file_log='log.000006',master_log_pos='151'; (最關鍵的一步,將主庫ip,同步帳號的用戶密碼,show master status獲得的file、position寫入。在5.7以前的版本這一步的相關參數是寫到配置文件中的,5.7若是再寫進配置文件會報參數錯誤)

4.start slave;

 

若是順利的話,到目前爲止主從同步已經搭建完成,在從庫中使用show slave status \G;查看同步狀態

看到以上結果說明生效了,你們能夠在主庫上插入數據測試一下主從同步是否生效了~

 

但願對你們有所幫助,祝你們天天開心~

相關文章
相關標籤/搜索