MySQL5.7 搭建主从同步
性能更好的新服务器申请下来了,我们决定在2台新服务器上使用mysql5.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
[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 搭建主从同步的更多相关文章
- mysql5.5 Replication 主从同步
mysql5.5 Replication 主从同步 ------------------[主]------------------[mysqld]server-id=1 log-bin=mysql-b ...
- 通过 XtraBackup 实现不停机不锁表搭建主从同步
简介 Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写).备份时,Xtrabackup 会将 Master 的 b ...
- MySQL-5.7数据库主从同步实战教程
主从形式 MySQ主从复制原理(主库写入数据,从库读取数据) MySql常用命令: MySQL5.7设置密码 ') where user='root': MySQL5.6设置密码 ') WHERE U ...
- Mysql5.7.13主从同步(复制)配置
主从同步是分布式mysql数据库相当重要的配置,现在我在虚拟机上完成主从配置,系统是CenterOS6.5,mysql版本是5.7.13 主服务器的ip是192.168.19.139 副服务器的ip是 ...
- CentOS6.2(64bit)下mysql5.6.16主从同步配置
1. 主配置,进入mysql.cnf在[mysqld]下面添加以下配置 [root@localhost ~]# vi /etc/mysql.cnf server-id=1 binlog-format= ...
- mysql5.7搭建主从库
#MYSQL单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种原因,需要有一个备用数据库, 这时候主从库是不错的选择,在是数据库集群中也起到了很大的作用 #MySQL 主从复 ...
- centos 7 SVN安装脚本搭建主从同步灵活切换
svn 脚本下载 http://opensource.wandisco.com/subversion_installer_1.9.sh 2019-Aug-20 12:20:4810.1Kapplica ...
- 烂泥:mysql5.5主从同步复制配置
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mys ...
- mysql5.5主从同步复制配置
在上篇文章<烂泥:学习mysql数据库主从同步复制原理>中,我们介绍了有关mysql主从复制的基本原理.在这篇文章中,我们来实际测试下mysql5.5的主从同步复制功能. 注意mysql5 ...
随机推荐
- Redis 事物
MULTI . EXEC . DISCARD 和 WATCH 是 Redis 事务的基础. Multi 和 Exec Multi:开启一个事务,它总是返回 OK .执行之后, 客户端可以继续向服务器发 ...
- 【EF6学习笔记】(二)操练 CRUD 增删改查
本篇原文链接: Implementing Basic CRUD Functionality 说明:学习笔记参考原文中的流程,为了增加实际操作性,并能够深入理解,部分地方根据实际情况做了一些调整:并且根 ...
- Spring cloud的Maven插件(一):repackage目标
简介 Spring Boot Maven Plugin插件提供spring boot在maven中的支持.允许你打包可运行的jar包或war包. 插件提供了几个maven目标和Spring Boot ...
- Go基础系列:函数(1)
Go中函数特性简介 对Go中的函数特性做一个总结.懂则看,不懂则算. Go中有3种函数:普通函数.匿名函数(没有名称的函数).方法(定义在struct上的函数). Go编译时不在乎函数的定义位置,但建 ...
- navicat连接不上Linux服务器上的MySQL
1.首先确定你的linux已经关闭防火墙 详细操作点这里: 如果是公司服务器防火墙比较重要不能关闭,那就麻烦点了,需要在防火墙的配置文件下配置属性. 如果还不能解决,请继续往下看. 2.如果是云服务器 ...
- 解决QTableWidget不显示数据的问题
QTableWidget通常用于数据的展示,通过其表格布局可以让用户更清晰的查看数据,同时也让数据的筛选变得更加直观. 不过,初学者们和粗心大意的人总是会发现明明自己数据已经正常添加,可是程序运行之后 ...
- 第一册:lesson thirty seven。
原文: Making a bookcase. A:You are working hard,George. What are you doing . B:I am making a bookcase. ...
- 第一册:lesson thirty three。
原文:A fine day. It is a fine day today. There are some clouds in the sky. But the sun is shining. Mr. ...
- 使用Topshelf开发Windows服务、log4net记录日志
开发windows服务,除了在vs里新建服务项目外(之前有写过具体开发方法,可点击查看),还可以使用Topshelf. 不过使用topshelf需要.netframework 4.5.2版本,在vs2 ...
- sql server查询语句条件判断字段值是否为NULL
判断字段是否为null select * from table where c is null select * from table where c is not null 判断字段是否为空 ...