在 CentOS + LAMP 环境下升级 MySQL,常见场景有两种:
下面按安全、通用的方式说明(以 CentOS 7 + yum 为例)。
mysqldump -uroot -p --all-databases > all_db_backup.sql
或物理备份:
systemctl stop mysqld
cp -r /var/lib/mysql /var/lib/mysql_bak
mysql -V
rpm -qa | grep mysql
cat /etc/my.cnf | grep datadir
yum makecache
yum update mysql mysql-server
systemctl restart mysqld
mysql -V
✅ 小版本一般无需手动升级表结构
⚠️ 风险较高,务必备份
systemctl stop mysqld
yum remove mysql mysql-server mysql-libs
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-9.noarch.rpm
yum install mysql-community-server
systemctl start mysqld
mysql_upgrade -u root -p
MySQL 8.0 某些版本已自动执行
mysql_upgrade
适合:
步骤简述:
# 停止服务
systemctl stop mysqld
# 解压新版本
tar -xzf mysql-8.0.xx-linux.tar.gz
cp -r mysql-8.0.xx/* /usr/local/mysql/
# 启动
systemctl start mysqld
mysql_upgrade
mysqlcheck -u root -p --all-databases --check-upgrade
查看错误日志:
tail -n 50 /var/log/mysqld.log
caching_sha2_passwordALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
innodb 损坏mysqlcheck 提前修复✅ 生产环境:
如果你告诉我:
我可以给你精确到命令的升级方案。