阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL5.7 搭建主从同步

172次阅读
没有评论

共计 2610 个字符,预计需要花费 7 分钟才能阅读完成。

性能更好的新服务器申请下来了,我们决定在 2 台新服务器上使用 MySQL 5.7,并且使用主从同步、读写分离架构,很不幸这个任务落到了我的头上。读写分离是在业务代码中实现的,在此不做详述,介绍一下我搭建 MySQL 主从的过程。

环境介绍:
Master 10.20.66.150
Slave    10.20.66.151

端口都是 3306

一、修改主库的配置 vi /etc/my.cnf

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
<br>[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 设置不需要同步的库

二、创建用于主从同步的账户

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; 查看同步状态

MySQL5.7 搭建主从同步

看到以上结果说明生效了,大家可以在主库上插入数据测试一下主从同步是否生效了~

希望对大家有所帮助,祝大家每天开心~

Linux 环境下 MySQL 数据库主从同步配置  https://www.linuxidc.com/Linux/2017-04/143017.htm
CentOS 7.4 下 MySQL+Amoeba 实现主从同步读写分离 https://www.linuxidc.com/Linux/2018-03/151648.htm
CentOS 下 MySQL 安装与主从同步配置详解 https://www.linuxidc.com/Linux/2017-11/148524.htm
MySQL 主从同步及错误 1146 解决办法 https://www.linuxidc.com/Linux/2017-02/140454.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2610字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中