mysql高可用基础-主从复制实践手册(centos8)
复制三步骤
1.配置一个master服务器
2.配置一个slave服务器
3.将slave连接到master
准备工作,安装两个mysql实例于不同服务器。(供参考《centos命令行安装配置Mysql(5.7.20+版本)》)
192.168.247.128 primary(master节点)
192.168.247.168 secondary(slave节点)
1.分别在master,slave节点,创建bin-log文件夹
su - mysql
cd /usr/local/mysql
mkdir bin-log
2.修改master节点,my.cnf文件,在[mysqld]下增加以下参数
vi /etc/my.cnf
log-bin=/usr/local/mysql/bin-log/master-bin
#开启二进制日志功能,binlog数据位置
log-bin-index=/usr/local/mysql/bin-log/master-bin.index
server-id=1
#服务器ID(唯一)
3.在master节点创建复制用户
mysql -uroot -p
create user repl_user; #建议创建专用复制用户,如想静止某些slave链接,删除对应用户即可
grant replication slave on .`to repl_user identified by '密码';
mysql> show master status; #查看二进制文件名,以及大小
4.配置slave节点,my.cnf文件,在[mysqld]下增加以下参数
vi /etc/my.cnf
log-bin=/usr/local/mysql/bin-log/slave-relay-bin
log-bin-index=/usr/local/mysql/bin-log/slave-relay-bin.index
server-id=2
#服务器ID(唯一)
5.连接master和slave
mysql -uroot -p
change master to master_host=’master主节点IP’,master_user=’ 复制用户’,master_password=’复制用户密码‘,master_port=端口号,master_log_file=’ 二进制文件参数’,master_log_pos= 文件空间大小 ;
change master to master_host='192.168.247.128',master_port=3306,master_user='repl_user',master_password='密码';
注:出现ERROR 1794 (HY000)
use mysql;
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;
切换到root特权,重建系统表
source /usr/local/mysql/share/mysql_system_tables.sql
(line可能报错,可跳过)
重启mysql服务
service mysql restart
6.验证复制服务
show slave status\G; 查看同步服务开启状态
start slave; 如果同步状态没有启动,则开启
Slave_IO_Running: Yes 如果失败,是授权失败了,重新授权
Slave_SQL_Running: Yes 如果失败,是因为二进制文件不一致导致的,重新查看一下主服务器的二进制文件大小,再授权一次就可以了,授权的时候,关闭同步服务:stop slave;