首页主机资讯MySQL在CentOS上如何升级

MySQL在CentOS上如何升级

时间2025-11-18 03:22:03发布访客分类主机资讯浏览1095
导读:在 CentOS 上升级 MySQL 的完整步骤 一 升级前准备 备份全部数据(强烈建议):使用逻辑备份覆盖所有库与对象,示例:mysqldump -u root -p --all-databases --routines --trigg...

在 CentOS 上升级 MySQL 的完整步骤

一 升级前准备

  • 备份全部数据(强烈建议):使用逻辑备份覆盖所有库与对象,示例:mysqldump -u root -p --all-databases --routines --triggers --single-transaction --hex-blob > /root/mysql_full_backup_$(date +%F).sql。备份文件妥善离线保存。
  • 检查当前版本与运行状态:mysql -Vsystemctl status mysqld。确认数据目录位置(默认 /var/lib/mysql)与配置文件路径(常见 /etc/my.cnf/etc/my.cnf.d/)。
  • 检查是否存在 mariadb 并与 MySQL 并存引发冲突:rpm -qa | grep -i mariadb。如共存需先统一处理(迁移或卸载),避免包冲突。
  • 规划版本路径:优先采用同系列小版本升级;跨大版本(如 5.7 → 8.0)需充分回归测试,并留意认证插件、SQL 模式、系统变量等兼容性差异。
  • 准备回滚方案:保留旧版本安装包与数据目录快照(停机快照或 LVM 快照),以便异常时快速回退。

二 原地升级步骤(In-place,推荐)

  • 安装或更新 MySQL 官方 YUM 仓库(以 CentOS 7/8 为例,选择与你系统匹配的版本):
    • CentOS 7:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm & & sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm
    • CentOS 8:wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm & & sudo rpm -ivh mysql80-community-release-el8-3.noarch.rpm
  • 选择目标版本(如需非默认版本):编辑 /etc/yum.repos.d/mysql-community.repo,将目标版本的 enabled=1,其他版本 enabled=0
  • 执行升级:sudo yum update mysql-community-server(仅升级服务器)或 sudo yum update(系统范围内升级相关包)。
  • 重启服务:sudo systemctl restart mysqld & & sudo systemctl enable mysqld
  • 获取初始临时密码并修改:sudo grep 'temporary password' /var/log/mysqld.log,随后 mysql -u root -p 登录并执行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Your_Strong_P@ssw0rd!';
  • 运行安全加固:sudo mysql_secure_installation(按需设置密码策略、移除匿名用户、禁止 root 远程等)。

三 跨大版本升级要点(如 5.7 → 8.0)

  • 兼容性自检:重点核对认证插件(5.7 常见 mysql_native_password,8.0 默认 caching_sha2_password)、已安装插件、SQL 模式、GTID、复制拓扑、定时事件与存储过程等。
  • 升级前准备:确保 innodb_fast_shutdown=1,干净关闭:sudo systemctl stop mysqld
  • 执行升级:启动到新版本后,使用内置升级机制完成系统表与数据字典升级(MySQL 8.0 启动过程会自动执行,无需额外命令)。
  • 密码与权限:8.0 对密码强度与认证插件更严格,必要时调整用户插件与密码策略:ALTER USER 'user'@'host' IDENTIFIED WITH caching_sha2_password BY 'pwd'; 或改回 mysql_native_password
  • 复制与高可用:主从/组复制需按官方指引逐节点升级,先确保 SQL/IO 线程正常,再滚动升级其他节点。
  • 回归测试:业务功能、性能与告警回归,重点验证登录认证、权限、SQL 兼容性、XA、触发器/事件、InnoDB 全文索引等。

四 验证与回滚

  • 版本与状态验证:mysql -Vmysql -e "SELECT VERSION(); "systemctl status mysqld
  • 数据一致性抽检:校验关键库表行数与代表性查询。
  • 应用连通性:应用配置、连接池、字符集与 SSL/TLS 设定复查。
  • 回滚方案:
    • 原地回滚:使用旧版本 RPM 包 sudo yum downgrade mysql-community-server-< 旧版本> ,恢复配置文件与数据目录(如有快照优先用快照)。
    • 重建回滚:导入升级前全量逻辑备份:mysql -u root -p < /root/mysql_full_backup_YYYY-MM-DD.sql
  • 常见故障排查:
    • 启动失败:查看错误日志 /var/log/mysqld.log,常见为权限/磁盘/配置冲突。
    • 无法登录:确认 skip-grant-tables 未误开启,或使用临时密码路径 /var/log/mysqld.log 重置密码。
    • 包冲突:卸载冲突的 mariadb 包或调整仓库优先级后再安装。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MySQL在CentOS上如何升级
本文地址: https://pptw.com/jishu/749714.html
如何优化CentOS iptables的性能 CentOS MySQL故障排查步骤是什么

游客 回复需填写必要信息