两台主机地址分别为:

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就正常了。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐