Mysql5.7主从配置

搭建的环境1主1从:MySQL_1作为主服务器ip:192.168.254.129 , Mysql_2作为从服务器ip:192.168.254.130
首先准备好2台安装好Mysql5.7的服务器 , 安装过程可以查看这个链接:https://www.dcr163.cn/519.html
这里我是使用的VMware Workstation 这个虚拟机软件 , 首先在centos7上安装好1台mysql5.7之后 , 这里命名虚拟机为Mysql_1 , 克隆1份Mysql_1虚拟机出来 , 命名为Mysql_2 。

Mysql5.7主从配置

文章插图
 
依次打开这2台mysql服务器 , 因为是克隆出来的 , Mysql_2的Mysql软件UUID是和第1台一样的 , 这里我们需要更改一下Mysql_2的UUID 。
使用SSH工具连接到Mysql_2服务器上 , 先连接进入mysql服务
[root@mysql1 ~]# mysql -uroot –p
Mysql5.7主从配置

文章插图
 
查询出自己的UUID
mysql> SELECT UUID();
Mysql5.7主从配置

文章插图
 
上面可以看到 , 这个是本机的UUID , 复制这一串UUID , 我们退出mysql
mysql> quit
Mysql5.7主从配置

文章插图
 
修改Mysql_2的UUID
进入到安装目录下的data目录
[root@mysql1 ~]# cd /usr/local/mysql/data/
Mysql5.7主从配置

文章插图
 
编辑修改auto.cnf这个文件 , UUID就定义在这个文件内 , 把刚刚复制出来的UUID , 替换掉旧的
[root@mysql1 data]# vim auto.cnf
Mysql5.7主从配置

文章插图
 
保存并且退出 , 我们重新启动一下mysql服务
[root@mysql1 data]# /etc/init.d/mysqld restart
Mysql5.7主从配置

文章插图
 
到这一步 , 我们的mysql_2就暂时准备好了 。
开始配置mysql主从环境
先配置主服务器master , 这里我们是Mysql_1 , 需要新增一些配置信息:
server-id=1 #这个类似一个唯一的标示 , 不能重复 , 最好是和自己的ip一致
log-bin=mysql-bin # 启用二进制日志
#两个可选参数(2选1)
binlog-do-db=mydb #需要同步的库 多个格式 db1,db2  , 这里我们同步的是mydb这个数据库
binlog-ignore-db= #忽略不同步的库
[root@mysql1 ~]# vim /etc/my.cnf
Mysql5.7主从配置

文章插图
 
保存后重启Mysql_1的mysql服务
[root@mysql1 ~]# /etc/init.d/mysqld restart
Mysql5.7主从配置

文章插图
 
在Mysql_1上创建刚刚我们指定的那个数据库 , 我们是使用的utf8mb4字符集:
[root@mysql1 ~]# mysql -uroot -p
mysql> CREATE DATABASE `mydb` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
Mysql5.7主从配置

文章插图
 
在Mysql_1上创建一个同步的账号 , 给从服务器使用
【Mysql5.7主从配置】mysql> grant replication slave on *.* to 'repl'@'192.168.254.%' identified by '654321';
mysql> flush privileges;
Mysql5.7主从配置

文章插图
 
上面我们创建了一个 repl账号 , 密码为:654321 , 只能在192.168.254.* 这个网段的客户端链接 , 请根据自己的环境需求修改自己对应的ip 。
先锁表 , 不让数据写入 , 防止配置同步的时候数据不一致
mysql> flush tables with read lock;
Mysql5.7主从配置

文章插图
 
查看主服务器的状态 , 并且记录二进制文件File和Position , 这个配置从服务器的时候需要用到 。
mysql> show master status;
Mysql5.7主从配置

文章插图
 
备份mydbd的数据库 , 先退出mysql客户端
mysql> quit
[root@mysql1 ~]# mysqldump -uroot -p mydb>mydb.sql
Mysql5.7主从配置

文章插图
 
把备份好的数据库拷贝到从服务器上的/root目录下 , 记得把从服务器的ip改成自己环境下的


推荐阅读