温馨提示×

MariaDB在Ubuntu上的升级指南

小樊
33
2025-12-20 14:48:25
栏目: 云计算

MariaDB在Ubuntu上的升级指南

一 升级前准备

  • 备份所有数据库与配置:优先使用逻辑备份,确保可回滚。示例:mysqldump -u root -p --all-databases > /path/to/backup/all-databases.sql;同时备份关键目录与配置:/etc/mysql//var/lib/mysql/。升级前务必先备份,避免数据丢失。
  • 检查当前版本与运行状态:mysql -Vsudo systemctl status mariadb
  • 查看可用的目标版本:sudo apt update 后执行 apt-cache policy mariadb-server,确认仓库中是否存在目标版本。
  • 规划维护窗口与回滚方案:升级期间建议短暂停写或切换主从,保留旧版本包与数据目录的快照/拷贝,以便快速回滚。

二 两种升级路径

  • 就地升级(推荐,适用于同系列小版本或跨小版本升级)

    1. 更新系统并添加 MariaDB 官方 APT 仓库(以 Ubuntu 20.04 focal 安装 10.6 为例):
      • 创建源文件:sudo nano /etc/apt/sources.list.d/mariadb.list
      • 写入:deb [arch=amd64,arm64,armhf] https://yum.mariadb.org/repo/10.6/ubuntu focal main
    2. 导入 GPG 公钥(若使用官方仓库通常已包含,如提示缺失再导入):
      sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
    3. 更新索引并指定版本安装:
      sudo apt update
      sudo apt install mariadb-server=10.6* mariadb-client=10.6*
    4. 重启服务并检查状态:sudo systemctl restart mariadbsudo systemctl status mariadb
    5. 登录验证版本:mysql -u root -p -e "SELECT VERSION();"
      说明:在 Debian/Ubuntu 的 MariaDB 包中,安装过程会自动调用相当于 mysql_upgrade 的升级步骤;跨大版本时仍建议先完整备份并在测试环境验证。
  • 迁移升级(跨大版本或需全新环境时)

    1. 按“准备”步骤完整备份并导出数据:mysqldump -u root -p --all-databases > backup.sql
    2. 在新环境或新实例中按目标版本安装 MariaDB(同上一节的步骤 1–3),不覆盖旧数据目录。
    3. 导入备份:mysql -u root -p < backup.sql
    4. 重启并验证:sudo systemctl restart mariadbmysql -V

三 升级后验证与常见问题

  • 版本与服务状态:mysql -Vsudo systemctl status mariadb,确认版本号与运行状态正常。
  • 权限与认证方式:Ubuntu 上 root 默认可能使用 auth_socket 插件,若应用需要密码登录,可调整为 mysql_native_password
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'StrongPass!'; FLUSH PRIVILEGES;
    或创建专用管理员用户并授权。
  • 常见登录错误(如 ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded):
    可临时以 mysqld_safe --skip-grant-tables & 启动,进入后执行:
    USE mysql; UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES;
    重启服务后再用密码登录。
  • 安全加固:运行 sudo mysql_secure_installation 完成匿名用户移除、远程 root 限制、测试库清理与权限表重载。

四 回滚与注意事项

  • 快速回滚思路:保留旧版本包与数据目录(如 /var/lib/mysql.bak-<date>),出现异常时停止服务、恢复数据目录与配置文件,重启服务即可。
  • 不建议跨多个大版本一次性跳跃升级;如从 10.1/10.2 升到 10.6,建议先在测试环境验证或按中间版本逐步升级。
  • 升级前确认目标仓库已启用且架构匹配(如 amd64/arm64),避免安装失败。
  • 生产环境建议在维护窗口内执行,先停写或切换主从,并在升级后密切监控错误日志与复制状态。

0