mysql主从配置重启就失效 mysql主从配置心跳表

导读:MySQL主从配置中,心跳表是一个非常重要的组件 。它可以帮助我们监控主从服务器之间的连接状态,保证数据同步的及时性和可靠性 。本文将介绍如何在MySQL主从配置中使用心跳表来实现高可用性 。
1. 创建心跳表
首先,在主库和从库上分别创建一个名为“heartbeat”的表 。该表只需要包含两个字段:id和timestamp 。其中,id为自增主键,timestamp为当前时间戳 。在主库上,我们需要给这个表添加一个触发器 , 每当有新数据插入时,触发器会更新从库的heartbeat表 。
【mysql主从配置重启就失效 mysql主从配置心跳表】2. 配置主库
在主库上,我们需要修改my.cnf文件,添加如下语句:
log-bin=mysql-bin
binlog-format=ROW
server-id=1
auto_increment_offset=1
auto_increment_increment=2
master-info-repository=TABLE
relay-log-info-repository=TABLE
relay-log=mysql-relay-log
relay-log-index=mysql-relay-log.index
log-slave-updates=true
gtid-mode=ON
enforce-gtid-consistency=true
其中,log-bin表示开启二进制日志功能;binlog-format表示设置二进制日志格式为ROW;server-id表示设置主库的唯一ID为1;auto_increment_offset和auto_increment_increment表示设置自增ID的步长,以避免与从库冲突;master-info-repository和relay-log-info-repository表示将主从信息存储在表中;relay-log和relay-log-index表示中继日志的位置;log-slave-updates表示将从库更新写入二进制日志中;gtid-mode和enforce-gtid-consistency表示开启GTID功能 。
3. 配置从库
在从库上,我们需要修改my.cnf文件,添加如下语句:
server-id=2
read_only=true
其中,server-id表示设置从库的唯一ID为2;relay-log和relay-log-index表示中继日志的位置;read_only表示只读模式,以防止误操作;log-bin和binlog-format同主库;gtid-mode和enforce-gtid-consistency同主库 。
4. 启动主从复制
在主库上执行以下命令:
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
SHOW MASTER STATUS;
将输出一个类似于“mysql-bin.000001”的文件名和一个数字(位置) 。在从库上执行以下命令:
CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=position;
START SLAVE;
其中,MASTER_HOST为主库的IP地址或域名;MASTER_USER和MASTER_PASSWORD为主库的用户名和密码;MASTER_LOG_FILE和MASTER_LOG_POS为主库的二进制日志文件名和位置 。
5. 总结
通过以上步骤,我们成功地配置了MySQL主从复制,并使用心跳表来监控主从服务器之间的连接状态 。这样可以保证数据同步的及时性和可靠性,提高系统的可用性和稳定性 。

    推荐阅读