在 CentOS 上升级 MySQL,常见做法有 yum 升级(小版本) 和 手动/官方仓库升级(大版本)。下面按场景说明。
# 1. 备份数据库
mysqldump -uroot -p --all-databases > all_db.sql
# 2. 备份配置文件
cp /etc/my.cnf /etc/my.cnf.bak
# 3. 查看当前版本
mysql -V
rpm -qa | grep mysql
适用于同大版本内升级,最安全。
yum makecache
yum update mysql-server
# 安装官方 repo(示例)
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
yum update mysql-community-server
重启服务:
systemctl restart mysqld
⚠️ 不能直接覆盖升级,需要谨慎。
# 启用 8.0 仓库
yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql80-community
yum update mysql-community-server
systemctl restart mysqld
升级后执行:
mysql_upgrade
(MySQL 8.0 一般会自动完成)
适合生产环境重要库。
# 导出
mysqldump -uroo -p --all-databases > all.sql
# 卸载旧版
yum remove mysql-server
# 安装新版
yum install mysql-community-server
# 导入
mysql -uroot -p < all.sql
查看日志:
cat /var/log/mysqld.log
MySQL 8.0 不支持部分 5.7 参数,需清理 my.cnf。
8.0 默认 caching_sha2_password,老程序需改回:
ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'pass';
如果你告诉我:
我可以给你精确命令。