Centos7.x搭建Mysql主主
Centos7.x搭建Mysql主主
参考网址:https://www.jianshu.com/p/0fadd3c54875
IP1:10.10.133.117(主)
IP2:10.10.133.118(从主)
环境:Centos7.3
前提是两台机器都装好了mysql,要同步的数据库数据相同,mysql版本尽量相同
Mysql复制原理
master服务器将数据的改变都记录到二进制binlog日志中,只要master上的数据发生改变,则将其改变写入二进制日志;salve服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开始一个I/O Thread请求master二进制事件,同时主节点为每个I/O线程启动一个dump线程,用于向其发送二进制事件,并保存至从节点本地的中继日志中,从节点将启动SQL线程从中继日志中读取二进制日志,在本地重放,使得其数据和主节点的保持一致,最后I/O Thread和SQL Thread将进入睡眠状态,等待下一次被唤醒。
1、 在10.10.133.117 上,修改/etc/my.cnf 配置文件
在[mysqld]下添加以下内容
#主主配置(master的配置)
# 服务器id (设置唯一标识
server-id=1
#要给从机同步的库(多个逗号分隔)
binlog-do-db=UMS,mapp_on
# 不给从机>同步的库
binlog-ignore-db=mysql,information_schema,performance_schema,sys
#打开日志(主机需要打开),可以指定绝对路径
log-bin=mysql-bin
#若涉及及同步函数或者存储过程需要配置,否则主备会产生异常不能同步
log_bin_trust_function_creators=TRUE
#设置数据库编码
character_set_server=utf8
#mysql 接收的最大数据包
max_allowed_packet = 20M
#建议禁用符号链接以防止各种安全风险
symbolic-links=0
#自动清理 30 天前的log文件,可根据需要修改
expire_logs_days=30
2、 在10.10.133.118 上,修改/etc/my.cnf 配置文件
在[mysqld]下添加以下内容
#主主配置(slave配置)
#MySQLid 后面2个从服务器需设置不同
server-id=2
log_bin=mysql-bin
binlog-do-db = UMS,mapp_on
log_bin_trust_function_creators=TRUE
symbolic-links=0
3、分别重启数据,以便配置生效
/etc/init.d/mysql restart
4、相互授权
在主机1(10.10.133.117)上
GRANT REPLICATION SLAVE ON *.* TO 'umpay'@'10.10.133.%' IDENTIFIED BY 'umpay2010';
flush privileges;
在主机1(10.10.133.118)上
GRANT REPLICATION SLAVE ON *.* TO 'umpay'@'10.10.133.%' IDENTIFIED BY 'umpay2010';
flush privileges;
5、互告bin-log信息
a、在主机1(10.10.133.117)上
mysql> show master status \G
*************************** 1. row ***************************
File: mysql-bin.000010
Position: 154
Binlog_Do_DB: UMS,mapp_on
Binlog_Ignore_DB: mysql,information_schema,performance_schema,sys
Executed_Gtid_Set:
1 row in set (0.00 sec)
b、在主机1(10.10.133.118)上
mysql> show master status \G
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 771
Binlog_Do_DB: UMS,mapp_on
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)
c、在主机1(10.10.133.117)上
change master to master_host='10.10.133.118',master_user='umpay', master_password='umpay2010', master_log_file='mysql-bin.000001', master_log_pos=771;
d、在主机1(10.10.133.118)上
change master to master_host='10.10.133.117',master_user='umpay', master_password='umpay2010', master_log_file='mysql-bin.000010', master_log_pos=154;
6、在117,118上分别执行
start slave;
7、show slave status\G 查看状态
当看到了两个yes即成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes