MariaDB在Ubuntu上如何升级
导读:Ubuntu 上升级 MariaDB 的完整步骤 一 升级前准备 备份所有数据库与配置:使用逻辑备份确保可回滚,建议同时保留数据目录与配置文件的快照。示例:mysqldump -u root -p --all-databases --ro...
Ubuntu 上升级 MariaDB 的完整步骤
一 升级前准备
- 备份所有数据库与配置:使用逻辑备份确保可回滚,建议同时保留数据目录与配置文件的快照。示例:
mysqldump -u root -p --all-databases --routines --triggers --single-transaction > /path/to/backup/all-databases.sql。如条件允许,停机后做文件系统级快照。 - 记录现有版本与关键配置:执行
mysql -V、sudo systemctl status mariadb,并备份/etc/mysql/、/var/lib/mysql/(注意权限与属主)。 - 检查兼容性:跨小版本通常平滑,跨多个版本或跨发行版升级时,先评估应用与存储引擎(如 InnoDB)兼容性。
- 选择升级路径:优先使用同一主版本的“小版本升级”(如 10.5.x → 10.5.y);跨主版本(如 10.3 → 10.11)建议先在测试环境演练。
- 准备回滚方案:保留旧版本包与数据快照,确保可在短时间内恢复业务。
以上备份与升级思路为 MariaDB 官方仓库与运维实践中的通用要求。
二 标准升级步骤(同一主版本内)
- 更新系统软件包索引:
sudo apt update & & sudo apt upgrade -y。 - 备份当前数据库(见上节)。
- 安装 MariaDB 新版本(保持同一主版本):
sudo apt install mariadb-server mariadb-client。 - 重启服务:
sudo systemctl restart mariadb。 - 执行安全初始化(如首次安装或需要重置策略):
sudo mysql_secure_installation。 - 登录并核验版本:
mysql -u root -p -e "SELECT VERSION(); "。 - 如曾做过全量逻辑备份,可在确认无误后导入:
mysql -u root -p < /path/to/backup/all-databases.sql。
上述流程适用于在同一主版本内使用 APT 原地升级的场景。
三 跨主版本或跨发行版升级
- 备份与评估:完整备份与兼容性评估是必须步骤。
- 添加 MariaDB 官方 APT 仓库(以 10.11 为例,替换为你的目标版本与系统代号):
- 创建源文件:
echo "deb [arch=amd64] https://mirror.yandex.ru/mariadb/repo/10.11/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/mariadb.list。 - 导入 GPG 公钥:
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8。
- 创建源文件:
- 更新索引并安装目标版本:
sudo apt update & & sudo apt install mariadb-server mariadb-client。 - 执行升级适配:
sudo mysql_upgrade -u root -p(该步骤会检查并升级系统表结构、存储引擎等)。 - 重启服务:
sudo systemctl restart mariadb并核验版本。 - 不建议跨多个主版本一次性跳跃,必要时分步升级并在每一步核验。
以上方法适用于跨主版本升级,包含添加官方仓库、导入密钥、安装与执行 mysql_upgrade 的关键环节。
四 常见问题与处理
- root 登录报 “ERROR 1524 (HY000): Plugin ‘unix_socket’ is not loaded”
原因多为认证插件变更或缺失。可按如下方式修复:- 以系统管理员身份停止 MariaDB;2) 以跳过授权表方式启动:
mysqld_safe --skip-grant-tables &; - 登录后执行:
USE mysql; UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES;(如需保留 socket 认证,可改为设置plugin='unix_socket'); - 重启服务。
- 以系统管理员身份停止 MariaDB;2) 以跳过授权表方式启动:
- 从 MySQL 迁移到 MariaDB
一般可直接安装 MariaDB 包覆盖,但需提前做好全量备份;跨大版本(如 MySQL 8.0 → MariaDB 10.11)更推荐用mysqldump逻辑迁移,避免系统表不兼容。 - systemd 启动超时或 AppArmor 拦截
检查是否存在 SysV 与 systemd 冲突、AppArmor 策略限制;必要时禁用冲突的 SysV 脚本或调整 AppArmor 配置后再试。
以上问题为实际升级中高频案例,按文中方法可快速恢复。
五 回滚与验证
- 快速回滚:若使用 APT 原地升级,可降级到旧版本包并恢复数据目录与配置文件;如做过快照,直接回滚快照更快。
- 业务验证:核验表结构与数据一致性、主从复制状态(如有)、应用连接与性能基线。
- 建议操作清单:
- 核对
SELECT VERSION();与目标一致; - 抽样校验核心表行数与关键数据;
- 检查错误日志
/var/log/mysql/error.log是否存在异常; - 如启用复制/集群,确认 IO/SQL 线程正常。
- 核对
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MariaDB在Ubuntu上如何升级
本文地址: https://pptw.com/jishu/782341.html
