温馨提示×

MariaDB在Ubuntu上的升级步骤是什么

小樊
45
2025-12-04 19:27:52
栏目: 云计算

Ubuntu 上升级 MariaDB 的标准步骤

一 升级前准备

  • 备份所有数据库(强烈建议):使用逻辑备份覆盖关键库或全部库,示例:mysqldump -u root -p --all-databases > /path/to/backup/all-databases.sql。如条件允许,同时进行文件系统级快照与配置文件备份(如 /etc/mysql/)。
  • 检查当前版本与仓库:mysql -Vsudo apt updateapt-cache policy mariadb-server,确认现有版本与可升级版本。
  • 阅读发行说明与变更:跨小版本/跨大版本升级前,查看 MariaDB 的版本变更与兼容性说明,评估 InnoDB、复制、Galera 等组件影响。
  • 规划维护窗口与回滚方案:确保升级失败可快速回退到旧版本与备份。

二 标准升级步骤(同系列小版本或跨版本)

  1. 更新系统软件包索引:sudo apt update && sudo apt upgrade
  2. 添加 MariaDB 官方 APT 仓库(以目标版本为准,示例为 10.5,请替换为你的版本;同时将 <UBUNTU_CODENAME> 替换为你的系统代号,如 focal、jammy、noble):
    • 创建源文件:sudo nano /etc/apt/sources.list.d/mariadb.list
    • 写入内容(示例镜像):
      deb [arch=amd64,arm64,armhf] https://mirror.yandex.ru/mariadb/repo/10.5/ubuntu <UBUNTU_CODENAME> main
  3. 更新索引:sudo apt update
  4. 可选 清理旧包缓存与冲突包(谨慎):sudo apt remove --purge mariadb-server mariadb-client(若担心风险,可跳过此步,直接执行安装以触发替换)。
  5. 安装目标版本(两种常用方式,二选一):
    • 直接安装:sudo apt install mariadb-server mariadb-client
    • 指定版本:sudo apt install mariadb-server=<VERSION>* mariadb-client=<VERSION>*(将 替换为如 10.5)。
  6. 启动与开机自启:sudo systemctl start mariadbsudo systemctl enable mariadb
  7. 运行安全配置向导:sudo mysql_secure_installation(设置 root 密码、移除匿名用户、禁止远程 root 登录等)。
  8. 验证版本:mysql -V 或登录后执行 SELECT VERSION();
  9. 如从旧主版本跨到新主版本,执行升级数据字典:sudo mariadb-upgrade(MariaDB 10.4+ 提供该工具,用于升级系统表与存储引擎)。

三 跨版本与特殊场景

  • 大版本跨升建议逐步升级:例如从 10.3 → 10.5,可先升级到中间版本(如 10.4),验证无误后再升到 10.5,以降低风险。
  • 从 MySQL 迁移到 MariaDB:可先全量备份,再安装 MariaDB 并导入备份;注意认证插件与 SQL 模式差异,必要时调整 user 表的 plugin 字段(如从 unix_socket 调整为 mysql_native_password)。

四 回滚与常见问题

  • 快速回滚:
    • 停止服务:sudo systemctl stop mariadb
    • 卸载新版本:sudo apt remove --purge mariadb-server mariadb-client
    • 恢复官方源或系统源后重装旧版本:sudo apt install mariadb-server mariadb-client
    • 启动服务:sudo systemctl start mariadb
    • 导入备份:mysql -u root -p < /path/to/backup/all-databases.sql
  • 常见登录问题:升级后 root 可能无法登录并提示插件错误(如 ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded),可按如下方式修复:
    • 停止 MariaDB:sudo systemctl stop mariadb
    • 以跳过权限方式启动:sudo mysqld_safe --skip-grant-tables &
    • 登录并调整认证:mysql -u root,在 mysql 库执行
      • UPDATE user SET plugin='mysql_native_password' WHERE User='root';
      • FLUSH PRIVILEGES;
    • 重启服务:sudo systemctl restart mariadb
  • 服务与升级校验:使用 sudo systemctl status mariadb 检查运行状态,使用 mysql -VSELECT VERSION(); 校验版本。

0