博客涉及的相关软件仅供学习参考,不做任何商业用途以及无相关法律责任!如有不妥请联系QQ 3278688677 进行更正。
一、准备两台装有mysql的服务,这里准备了一台192.168.10.20和一台192.168.10.23
1.以23作为主服务器,20为从服务器为例。23数据库服务器可参考如下配置:
# vim /morik/sql/mysql_5.7.26/my.cnf
加入如下配置信息
server-id=23 #任意自然数n,只要保证两台MySQL主机不重复就可以了。
log-bin=mysql-bin #开启二进制日志
auto_increment_increment=2 #自增长id一次长2可以不配置
auto_increment_offset=1 #自增长id从1开始长 可以不配置
2.登录23数据库(root20:登录名根据实际情况设置;专户密码:设置root20用户的密码)
# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'root20'@'192.168.10.20' IDENTIFIED BY '专户密码';
flush privileges; --建立一个专门用于复制数据的用户
mysql>flush privileges;
mysql>show master status; --查看主数据库二进制日志,在第3步中配置master_log_file和master_log_pos
3.登录20从数据库进行如下配置
# mysql -uroot -p
mysql>change master to
mysql>master_host='192.168.10.23',
mysql>master_user='root20',
mysql>master_password='专户密码',
mysql>master_log_file='master-2.000004',
mysql>master_log_pos=154;
3.在20从服务器上开启主从热备
mysql>start slave;
mysql>show slave status\G;
4.关闭重置主从关系,在20服务器上主动停止并重置。(配置出错可以执行此步骤)
# mysql -uroot -p你的密码
mysql>stop slave;
mysql>reset slave all;
二、把一步骤逆向配置一下就成了双主从也就是主主同步热备份了,具体步骤如下:
1.主数据库服务器20可参考如下配置:
# vim /morik/sql/mysql_5.7.26/my.cnf
加入如下配置信息
server-id=20 #任意自然数n,只要保证两台MySQL主机不重复就可以了。
log-bin=mysql-bin #开启二进制日志
auto_increment_increment=2 #步进值auto_imcrement。一般有n台主MySQL就填n
auto_increment_offset=2 #起始值。一般填第n台主MySQL。此时为第一台主MySQL
2.登录20数据库(root23和专户密码根据实际情况设置)
# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'root23'@'192.168.10.23' IDENTIFIED BY '专户密码';
flush privileges; --建立一个专门用于复制数据的用户
mysql>flush privileges;
mysql>show master status; --查看主数据库二进制日志,在第3步中配置master_log_file和master_log_pos
3.登录23从数据库进行如下配置
# mysql -uroot -p
mysql>change master to
mysql>master_host='192.168.10.20',
mysql>master_user='root23',
mysql>master_password='专户密码',
mysql>master_log_file='master-2.000002',
mysql>master_log_pos=154;
3.在23从服务器上开启主从热备
mysql>start slave;
mysql>show slave status\G;
三、备注其他相关命令
//查看账号和ip配置是否正确
mysql>use mysql;
mysql>select user,host from user;
//查看Server_id
mysql>show variables like '%server_id%';
//防火墙
# sudo systemctl stop firewalld 临时关闭
# sudo systemctl disable firewalld ,然后reboot 永久关闭
# sudo systemctl status firewalld 查看防火墙状态。