服务器环境2台centos 一主一从
服务角色 | IP |
---|---|
主 | 192.168.3.231 |
从 | 192.168.3.232 |
分别在2台服务器上安装参考 https://blog.csdn.net/tao1992/article/details/133100176
配置主从
主 /etc/my.cnf
复制同步相关配置
server_id=1
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog
从 /etc/my.cnf
复制同步相关配置
server_id=2
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
log_bin=binlog
read_only=1
其中server_id为1表示master,值为其他表示slave节点,由于一般情况下从节点只需要读,所以我们使用配置read_only开启数据库为只读模式。需要开启binlog日志。
配置好my.cnf后分别在主从机器上重启mysql。
service mysql stop;
service mysql start;
在主节点master上创建同步数据账号 并授予复制权限
create user 'slave'@'%' identified by 'slave';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%';
查看主节点上的binlog日志状态 此步如果开启了binlog会返回当前的binlog文件名称和pos位置
show master status;
接下来进入从节点(slave)中,登录mysql终端。
#首先停止slave 以防在运行中
stop slave;
#变更从节点的复制数据接口
CHANGE REPLICATION SOURCE TO SOURCE_HOST="192.168.3.231", SOURCE_USER="slave",SOURCE_PASSWORD="slave", SOURCE_LOG_FILE='binlog.000002',SOURCE_LOG_ POS=1088,get_master_public_key=1;;
其中SOURCE_LOG_FILE上主节点中的binlog文件名,SOURCE_LOG_ POS 主节点中的Binlog当前位置。get_master_public_key=1主要解决了This was attempt 1/86400, with a delay of 60 seconds between attempts. Message.....reported error: Authentication requires secure connection
这个问题,如果不报错也可以不加。
#开始启动slave
start replica;
#显示salve状态
show REPLICA status\G;
如果状态中的如下字段返回Yes表示当前同步链路正常运行中。这一步可能会遇到很多问题,比如防火墙等等。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes