MySQL

mysql互为主从复制

2018-10-12  本文已影响0人  孔厌柔

前要条件:同步两台服务器的时间

#同步香港时间
/usr/sbin/ntpdate stdtime.gov.hk

Master-1:172.16.160.35
Master-2:172.16.160.37
MySQL版本:mysql-5.7


1.mysql配置文件修改及说明

分别修改两个节点的mysql,此处修改配置文件为:/etc/my.cnf
修改Master-1如下:

server-id=1 #server的唯一标识
auto_increment_offset=1 #自增id起始值
auto_increment_increment=2 #每次自增数字

log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M #binlog单文件最大值
binlog_format=mixed #指定mysql的binlog日志的格式,mixed是混合模式
relay-log=relay-bin #开启中继日志功能
relay-log-index=slave-relay-bin.index #中继日志清单

replicate-ignore-db = mysql #忽略不同步主从的数据库
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = test

修改Master-2如下:

server-id=2 #server的唯一标识
auto_increment_offset=2 #自增id起始值
auto_increment_increment=2 #每次自增数字

log-bin = mysql-bin #打开二进制功能,MASTER主服务器必须打开此项
max_binlog_size=1024M #binlog单文件最大值
binlog_format=mixed #指定mysql的binlog日志的格式,mixed是混合模式
relay-log=relay-bin #开启中继日志功能
relay-log-index=slave-relay-bin.index #中继日志清单

replicate-ignore-db = mysql #忽略不同步主从的数据库
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = test

注意:

2.重启mysql使配置文件生效

分别在两个节点上执行一下命令:

CENTOS6:service mysqld restart
CENTOS7:systemctl restart mysqld
3.添加主从同步账号

Master-1操作如下:

grant replication slave on *.* to ’m1slave’@‘172.16.160.37’ identified by ‘password’;

Master-2操作如下:

grant replication slave on *.* to ’m2slave’@‘172.16.160.35’ identified by ‘password’;

注意:

4.查看Master库的状态

分别在两个节点上执行一下命令:

show master status;

查看结果如下:
Master-1:

Master-2:

5.配置同步数据

Master-1操作如下:

change master to master_host=‘172.16.160.37’, master_port=3306, master_user=’m2slave’, master_password=‘password’, master_log_file=‘mysql-bin.000003’, master_log_pos=480;

Master-2操作如下:

change master to master_host=‘172.16.160.35’, master_port=3306, master_user=’m1slave’, master_password=‘password’, master_log_file=‘mysql-bin.000003’, master_log_pos=70476;

注意:

6.运行Slave库

分别在两个节点上执行一下命令:

start slave;
7.查看Slave库的状态

分别在两个节点上执行一下命令:

show slave status\G;

如果查看结果如下图,说明正常


问题及解决方式:

Slave_IO_State : Connecting to master
Slave_IO_Running : Connecting
Slave_SQL_Running : Yes

通过结果中的Last_IO_Error属性或者追踪/var/log/mysqld.log文件,查看具体错误信息

Slave_IO_State : 
Slave_IO_Running : No
Slave_SQL_Running : Yes

通过结果中的Last_IO_Error属性或者追踪/var/log/mysqld.log文件,查看具体错误信息

stop slave; #停止Slave
set global SQL_SLAVE_SKIP_COUNTER=1;
start slave;

以上只代表我遇到的问题,及解决我的问题的方式,对于你遇到的问题是否可以解决不可保证,望见谅。

上一篇 下一篇

猜你喜欢

热点阅读