Mysql5.7 实现两台服务器互相备份同步 (主主互备)
两台主机地址分别为:ServA:192.168.109.180ServB:192.168.109.871.测试数据库端口是否通着telnet 192.168.109.180 3306出现以上信息表示可以访问通出现Connection refused 需要 查看防火墙端口3306是否放开;查看my.cnf 文件中 bind-address= 127.0.0.1 有没有把它注释掉my.cnf 文件 再
两台主机地址分别为:
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就正常了。
更多推荐
所有评论(0)