在 Ubuntu 上升级 MySQL,通常分为 小版本升级(如 8.0.x → 8.0.y) 和 大版本升级(如 5.7 → 8.0)。下面按常见场景说明。
mysqldump -u root -p --all-databases > all_db_backup.sql
或直接使用物理备份(如 xtrabackup)。
mysql --version
# 或
mysql -V
确保没有程序在写入数据库。
适用于 同一大版本内的更新,例如 8.0.32 → 8.0.36。
sudo apt update
sudo apt install --only-upgrade mysql-server
sudo systemctl restart mysql
mysql -V
✅ 小版本升级一般无需手动执行 mysql_upgrade(MySQL 8.0 已自动处理)。
⚠️ 有兼容性风险,务必先测试。
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
选择目标版本(如 MySQL 8.0)。
sudo apt update
sudo apt install mysql-server
sudo mysql_upgrade -u root -p
(MySQL 8.0 通常自动完成)
sudo systemctl restart mysql
适合 跨大版本、服务器迁移。
mysqldump -u root -p --all-databases > backup.sql
sudo apt remove mysql-server mysql-client
sudo apt autoremove
sudo apt install mysql-server
mysql -u root -p < backup.sql
sudo systemctl status mysql
mysqlcheck -u root -p --all-databases
注意:
/etc/mysql/my.cnf/etc/mysql/mysql.conf.d/旧参数可能在新版本被弃用。
MySQL 8 默认使用 caching_sha2_password,老客户端可能不支持。
如果你愿意,可以告诉我:
我可以给你精确到命令的升级方案。