Sharding-JDBC教程-2:Spring Boot整合Sharding-JDBC实现Mysql主从同步配置

前言:

上一篇文章我们在3台虚拟机安装好Mysql,但是安装好Mysql后,并不能达到主从节点同步的目的,现在让我们配置3台节点之间的主从同步。
没有安装Mysql的可以参考上一篇博客:Mysql安装教程

Mysql主从配置

机器准备

在三台机器上按照Msql安装教程安装完Mysql5.7,三台机器的ip分别为:
192.168.88.161 主
192.168.88.162 从
192.168.88.163 从

在三台机器上分别创建2个数据库,分别为cool和cool2,字符编码为utf8:

CREATE DATABASE `cool` CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE `cool2` CHARACTER SET utf8 COLLATE utf8_general_ci;

master 节点配置

在192.168.88.161机器上配置
vim /etc/my.inc
#数据库服务的唯一标识
server-id=1
#开启binlog二进制文件
log-bin=mysql-bin
sync_binlog=0
#日志保留7天
expire_logs_days=7
#指定cool,cool2开启binlog
binlog-do-db=cool
binlog-do-db=cool2
binlog-ignore-db=information_schema
binlog-ignore-db=sys
binlog-ignore-db=mysql
binlog-ignore-db=performance_schema

重启mysql

service mysql restart

重启成功后,登录mysql。

mysql -uroot -p123456

赋予从库权限账号,允许用户在主库上读取日志,赋予192.168.88.162和192.168.88.163也就是Slave机器有File权限,
只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

grant FILE on *.* to 'root'@'192.168.88.162' identified by '123456';
grant replication slave on *.* to 'root'@'192.168.88.162' identified by '123456';
flush privileges;


grant FILE on *.* to 'root'@'192.168.88.163' identified by '123456';
grant replication slave on *.* to 'root'@'192.168.88.163' identified by '123456';
flush privileges;

这里的用户是同步的时候从库使用的用户,root代表账号,123456代表密码

重启mysql

service mysql restart

重启成功后,登录mysql。

mysql -uroot -p123456

在这里插入图片描述
File是同步会使用到的binlog文件,Position是同步的时候也要用到的。

从库配置

注意:因为我是克隆的虚拟机,克隆后的Mysql的UUID是一样的,如果一样等会会有问题,Slave_IO_Running: No,这个会为No,本来是Yes,在不同的从节点修改Mysql的UUID,把最后一个字符改下就行,两台从节点都要改,master不用改。

vim /export/server/mysql-5.7.29/data/auto.cnf
[auto]
server-uuid=154fbe63-b236-11eb-a831-000c2987b482

1、修改/etc/my.conf

log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=sys
binlog-ignore-db=mysql
replicate-do-db=cool
replicate-do-db=cool2
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

注意:两个从库的server-id不一样,需要唯一。

2.修改完/etc/my.cnf后

重启mysql

service mysql restart

重启成功后,登录mysql。

mysql -uroot -p123456

进入Slave的mysql控制台,执行下面操作:

stop slave;
change master to master_host='192.168.88.161',master_user='root',master_password='123456',master_log_file='mysql-bin.000004', master_log_pos=5653;
start slave;

注意:上面的master_log_file是在Master中show master status显示的File,
而master_log_pos是在Master中show master status显示的Position。

配置第二个从库的时候,需要重新从matser获取File和position。

3.然后可以通过show slave status查看配置信息。
在这里插入图片描述
上面的信息有Slave_IO_Running: Yes和Slave_SQL_Running: Yes,证明主从同步成功。

4.如果出错,可以清理掉之前的配置,防止同步已经同步了的数据,执行以下命令:

mysql> stop slave;
mysql> reset slave all;

上述的步骤需要在2个从库中操作,操作完成后。可以在Master建表插入数据,然后再从2个库中查看,如果2个都有数据,则证明主从数据库同步成功。

参考资料

https://forezp.blog.csdn.net/article/details/94173427

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术武器库

一句真诚的谢谢,胜过千言万语

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值