Administrator
发布于 2022-05-01 / 404 阅读
1
0

MySQL-配置主主同步

MySQL-配置主主同步

1.安装MySQL5.7

参考:https://www.itcdz.cn/archives/centos7二进制安装mysql57x

2.配置server1

编辑server1的mysql配置文件

vim /etc/my.cnf

#服务器ID
server-id=1
#启用日志记录
log-bin=/usr/local/mysql/log/mysql-bin.log
#需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-do-db=talkback_db
#不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql 
#需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
replicate-do-db=talkback_db
#不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
replicate-ignore-db=mysql,information_schema 
#同步配置
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误
expire_logs_days=7   #二进制日志自动删除的天数,默认为0,表示不自动删除

#保存退出
:wq

#重启MySQL
systemctl restart mysqld

登录mysql操作

#登录MySQL
mysql -uroot -p

#创建数据同步用户
create user ‘qcslave’@‘192.168.2.71’ identified by ‘Dbapp@2022’;
#添加权限
grant replication slave on . to ‘qcslave’@‘192.168.2.71’ identified by ‘Dbapp@2022’;
#刷新权限
flush privileges;

#查看服务器的master状态
show master status;

3.配置server2

编辑server2的mysql配置文件

vim /etc/my.cnf

#服务器ID
server-id=2
#启用日志记录
log-bin=/usr/local/mysql/log/mysql-bin.log
#需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-do-db=talkback_db
#不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql 
#需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
replicate-do-db=talkback_db
#不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
replicate-ignore-db=mysql,information_schema 
#同步配置
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
slave-skip-errors=all #过滤掉一些没啥大问题的错误
expire_logs_days=7   #二进制日志自动删除的天数,默认为0,表示不自动删除

#保存退出
:wq

#重启MySQL
systemctl restart mysqld

登录mysql操作

#登录MySQL
mysql -uroot -p

#创建数据同步用户
create user ‘qcslave’@‘192.168.2.70’ identified by ‘Dbapp@2022’;
#添加权限
grant replication qcslave on . to ‘qcslave’@‘192.168.2.71’ identified by ‘Dbapp@2022’;
#刷新权限
flush privileges;

#查看服务器的master状态
show master status;

#查看是否开启日志记录功能
show master status;

#执行stop slave;分别关闭了I/O线程(stop slave IO_THREAD)和SQL线程(stop slave SQL_THREAD),
stop slave;

#配置同步信息
change master to master_host=‘192.168.2.70’,master_user=‘slave’, master_password=‘Dbapp@2022’, master_port=63306, master_log_file=‘edu-mysql-bin.000001’, master_log_pos=154, master_connect_retry=30;

#执行start slave;会依照master.info和relay-log.info信息,继续执行I/O线程和SQL线程,
start slave;

#I/O线程会维护master.info信息的更新,SQL线程会维护relay-log.info信息的更新,

#查看服务器2的状态
show slave status\G

4.返回server1配置

#登录MySQL配置同步信息
change master to master_host=‘192.168.2.71’,master_user=‘slave’, master_password=‘Dbapp@2022’, master_port=63306, master_log_file=‘edu-mysql-bin.000001’, master_log_pos=154, master_connect_retry=30;

#查看服务器2的状态
show slave status\G

#配置解释

master_host: 主服务器的IP 
master_user: 主服务器上新创建的用户名 
master_password: 用户的密码 
master_port: 主服务器的端口,如果未曾修改,默认即可。 
master_log_file: 主服务器二进制日志文件的名称,填写查看主服务器的master状态时显示的File的值 
master_log_pos.: 日志的位置,填写查看主服务器的master状态时显示的Position的值

评论