Linux环境下升级MariaDB版本的通用流程及注意事项
升级前必须备份所有重要数据库,防止操作失误导致数据丢失。推荐使用mysqldump工具导出所有数据库到一个SQL文件:
mysqldump -u root -p --all-databases > full_backup.sql
输入root密码后,脚本会将所有数据库结构和数据保存到full_backup.sql文件中。
确认当前MariaDB版本,确保升级路径符合官方要求(如从10.3升级到10.5,而非跨大版本跳跃):
mysql -u root -p -e "SELECT VERSION();"
输出结果示例:10.3.48-MariaDB-0ubuntu0.22.04.1。
若系统自带仓库版本较旧,需添加MariaDB官方仓库以获取最新版本。操作步骤因Linux发行版而异:
wget https://downloads.mariadb.com/MariaDB/mariadb_release_signing_key.asc
sudo apt-key add mariadb_release_signing_key.asc
echo "deb [arch=amd64,arm64] https://downloads.mariadb.com/MariaDB/repo/10.5/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/mariadb.list
sudo apt update
sudo yum install https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
sudo yum install https://yum.mariadb.org/10.5/centos7-amd64/rpm/MariaDB10.5-community.rpm
sudo yum update
添加仓库后,需更新本地软件包列表。根据系统包管理器选择对应命令:
mariadb-server和mariadb-client:sudo apt update
sudo apt upgrade mariadb-server mariadb-client
yum或dnf升级mariadb-server:sudo yum upgrade mariadb-server # CentOS 7
sudo dnf upgrade mariadb-server # CentOS 8+/RHEL 8+
升级过程中,包管理器会自动处理依赖关系并替换旧版本文件。升级完成后,重启服务以应用新版本:
sudo systemctl restart mariadb # 大多数Linux发行版
sudo systemctl restart mariadb-server # 部分旧版本
可通过systemctl status mariadb确认服务状态是否为“active (running)”。
登录MariaDB并检查版本号,确认升级成功:
mysql -u root -p -e "SELECT VERSION();"
输出应显示新版本号(如10.5.12-MariaDB-1:10.5.12+maria~jammy)。
若升级过程中未自动迁移数据(如跨主要版本升级),需将备份的full_backup.sql导入新数据库:
mysql -u root -p < full_backup.sql
导入前确保MariaDB服务已启动。
/var/log/mysql/error.log(路径因系统而异)或MariaDB日志,及时处理错误(如依赖缺失、数据冲突)。