Mysql5.7 实现两台服务器互相备份同步 (主主互备)

两台主机地址分别为:

ServA:192.168.109.180

ServB:192.168.109.87

1.测试数据库端口是否通着

telnet 192.168.109.180 3306

在这里插入图片描述
出现以上信息 表示可以访问通

在这里插入图片描述
出现 Connection refused 需要 查看防火墙端口3306是否放开;查看my.cnf 文件中 bind-address= 127.0.0.1 有没有把它注释掉
my.cnf 文件 再MySQL安装目录下;

1.1 配置同步账号

在ServA上增加一个ServB可以登录的帐号:

MySQL>GRANT all privileges ON *.* TO backups@'192.168.109.87' IDENTIFIED BY '123456';

(注意:backups是用于同步的帐号,123456是backups的密码)

在ServB上增加一个ServA可以登录的帐号:

MySQL>GRANT all privileges ON *.* TO backups@'192.168.109.180' IDENTIFIED BY '123456'; 

1.2 配置数据库参数 ServA

1、以root用户登录ServA,修改ServA的my.cnf文件

vi /etc/my.cnf 

在[MySQLd]的配置项中增加如下配置:

log-bin=MySQL-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id=1
binlog-do-db=vpnserver      #需要同步的库
replicate-do-db=vpnserver    #需要同步的库
binlog_ignore_db=mysql   #忽略写入binlog日志的库
binlog_ignore_db=information_schema   #忽略写入binlog日志的库
binlog_ignore_db=performation_schema   #忽略写入binlog日志的库
binlog_ignore_db=sys   #忽略写入binlog日志的库
slave-net-timeout=60

#重启mysqld

systemctl restart mysqld

#all-nodes
进入 ServB 的 MySQL 运行指令查看master状态

show master status;

在这里插入图片描述
记录下 File 值 MySQL-bin.000002 和 Position 值 3999

master_log_file = File 值 MySQL-bin.000002
master_log_pos = Position 值 3999

ServA 执行以下命令

change master to master_host='192.168.109.87',master_user='backups',master_password='123456',master_log_file='MySQL-bin.000001',master_log_pos=1050;

1.2 配置数据库参数 ServB

1、以root用户登录ServB,修改ServB的my.cnf文件

vi /etc/my.cnf
在[MySQLd]的配置项中增加如下配置:

log-bin=MySQL-bin
relay-log=relay-bin
relay-log-index=relay-bin-index
server-id=2                         #与主不同  如果已存在就删掉
binlog-do-db=vpnserver      #需要同步的库
replicate-do-db=vpnserver    #需要同步的库
binlog_ignore_db=mysql   #忽略写入binlog日志的库
binlog_ignore_db=information_schema   #忽略写入binlog日志的库
binlog_ignore_db=performation_schema   #忽略写入binlog日志的库
binlog_ignore_db=sys   #忽略写入binlog日志的库
slave-net-timeout=60

#重启mysqld

systemctl restart mysqld

#all-nodes
查看ServA 的 master状态

show master status;

master_log_file = File 值 MySQL-bin.000002
master_log_pos = Position 值 3999

#ServB 执行

change master to master_host='192.168.109.180',master_user='backups',master_password='123456',master_log_file='MySQL-bin.000001',master_log_pos=154;

ServA 和 ServB都执行 以下命令

#all-nodes

start slave;  

1.4 查看数据库同步状态

在MySQL命令提示符下执行:

MySQL> show slave status\G 

将显示同步进程的状态,如下所示,两行蓝色字体为slave进程状态,如果都为yes表示正常;红色字体表示同步错误指示,如果有问题会有错误提示:

在这里插入图片描述

"Slave_IO_Running: No"MYSQL不同步

"Slave_IO_Running: No"MYSQL不同步

show slave status查看同步状态如下:
Slave_IO_Running: No
Slave_SQL_Running: Yes
使用start slave也不能同步。
先stop slave
再reset slave
再start slave就正常了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Heart&Fire

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值