备份数据
# 在主库和从库上都执行完整备份
mysqldump -u root -p --all-databases --master-data=2 --single-transaction > full_backup.sql
检查当前版本
SHOW VARIABLES LIKE 'version%';
验证主从同步状态
SHOW SLAVE STATUS\G
停止从库复制
STOP SLAVE;
升级从库
# 停止MySQL服务
systemctl stop mysqld
# 备份当前配置
cp /etc/my.cnf /etc/my.cnf.bak
# 升级MySQL软件包
yum update mysql-server
# 启动MySQL服务
systemctl start mysqld
验证从库升级
SHOW VARIABLES LIKE 'version%';
启动从库复制
START SLAVE;
监控复制状态
SHOW SLAVE STATUS\G
升级主库
# 在主库上执行相同升级步骤
systemctl stop mysqld
yum update mysql-server
systemctl start mysqld
停止主库写入
FLUSH TABLES WITH READ LOCK;
记录主库二进制日志位置
SHOW MASTER STATUS;
停止从库复制
STOP SLAVE;
升级主库和从库
# 在主库和从库上执行
systemctl stop mysqld
yum update mysql-server
systemctl start mysqld
重新配置主从
-- 在从库上执行
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file',
MASTER_LOG_POS=recorded_log_pos;
START SLAVE;
解锁主库
UNLOCK TABLES;
检查版本一致性
SHOW VARIABLES LIKE 'version%';
验证复制状态
SHOW SLAVE STATUS\G
测试数据同步
-- 在主库上创建测试数据
CREATE DATABASE upgrade_test;
USE upgrade_test;
CREATE TABLE test_table (id INT);
INSERT INTO test_table VALUES (1);
-- 在从库上验证
SELECT * FROM upgrade_test.test_table;
复制中断
-- 查看错误原因
SHOW SLAVE STATUS\G
-- 跳过错误(谨慎使用)
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;
版本不兼容
配置文件冲突
# 比较新旧配置文件差异
diff /etc/my.cnf /etc/my.cnf.rpmnew
通过以上步骤,您可以安全地在CentOS 7环境下完成MySQL主从同步环境的小版本升级。