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 ...
随机推荐
- SQL中的Join和Where的区别
一.sql语句中left join.inner join中的on与where的区别 0.各种join操作的概念和作用 left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. ...
- DotNetCore深入了解之一Startup类
一个典型的ASP.NET Core应用程序会包含Program与Startup两个文件.Program类中有应用程序的入口方法Main,其中的处理逻辑通常是创建一个WebHostBuilder,再生成 ...
- border-image属性把边框的背景设置为图片
一.浏览器对它的支持Firefox3.5-Firefox15 需要加-moz-前缀Firefox15以上 同样支持-moz-前缀的css代码,但是必须在css代码中加 ...
- Web中的积累:外观模式 Facade
摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 壹 前言 目测好久没写文章了,距离上一篇文章也有二十多天.我是怎么了?哈 ...
- 04 Tensorflow的中的常量、变量和数据类型
打开Python Shell,先输入import tensorflow as tf,然后可以执行以下命令. Tensorflow中的常量创建方法: hello = tf.constant('Hello ...
- python练习二—画幅好画
这个练习相对简单,主要是对reportlab库的学习调用,看代码 #! /usr/bin/env pyton # -*- coding=utf-8 -*- from reportlab.lib imp ...
- TensorFlow中的通信机制——Rendezvous(一)本地传输
背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在TensorFlow源码中我们经常能看到一个奇怪的词——Rendezvous ...
- YARN集群的mapreduce测试(四)
将手机用户使用流量的数据进行分组,排序: 测试准备: 首先同步时间,然后master先开启hdfs集群,再开启yarn集群:用jps查看: master上: 先有NameNode.SecondaryN ...
- .net里的ref、out、params参数。
1.ref參數 class Program { static void Main(string[] args) { int a = 10; ...
- C#静态成员静态类。
1. 在静态类中,所包含的所有成员必须是静态的.但不是所有静态成员都必须写在静态类中. 实例成员属于具体的对象,静态成员是属于类的.所以访问静态成员的时候不能通过对象来访问,只能通过类名直 ...