温馨提示×

centos lamp如何升级mysql

小樊
40
2026-09-15 09:55:07
栏目: 云计算

CentOS + LAMP 环境下升级 MySQL,常见场景有两种:

  1. 小版本升级(如 5.7.30 → 5.7.42)
  2. 大版本升级(如 5.6 → 5.7,或 5.7 → 8.0)

下面按安全、通用的方式说明(以 CentOS 7 + yum 为例)。


一、升级前必做(重要)

1. 备份数据库(必须)

mysqldump -uroot -p --all-databases > all_db_backup.sql

或物理备份:

systemctl stop mysqld
cp -r /var/lib/mysql /var/lib/mysql_bak

2. 查看当前版本

mysql -V
rpm -qa | grep mysql

3. 确认数据目录

cat /etc/my.cnf | grep datadir

二、小版本升级(推荐 yum)

1. 更新 yum 缓存

yum makecache

2. 升级 MySQL

yum update mysql mysql-server

3. 重启服务

systemctl restart mysqld

4. 检查版本

mysql -V

✅ 小版本一般无需手动升级表结构


三、大版本升级(如 5.7 → 8.0)

⚠️ 风险较高,务必备份

方式一:官方 yum 仓库升级(推荐)

1. 卸载旧版本(保留数据)

systemctl stop mysqld
yum remove mysql mysql-server mysql-libs

2. 安装 MySQL 8.0 yum 源

rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-9.noarch.rpm

3. 安装 MySQL 8.0

yum install mysql-community-server

4. 启动并升级

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

六、常见问题

1. PHP 连接报错

  • MySQL 8.0 默认 caching_sha2_password
  • 解决:
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

2. 表不兼容

  • 升级前确保无 innodb 损坏
  • mysqlcheck 提前修复

七、总结建议

✅ 生产环境:

  • 先测试环境验证
  • 小版本直接 yum
  • 大版本用备份 + 新装 + 导入数据

如果你告诉我:

  • CentOS 版本
  • MySQL 当前版本
  • 目标版本

我可以给你精确到命令的升级方案

0