Ubuntu 20.04 升级 MariaDB 10.6 数据丢失风险怎么避免?

文章导读
Ubuntu 20.04 默认仓库仅支持 MariaDB 10.3,升级至 10.6 需添加官方源并严格备份。避免数据丢失的核心是在执行 apt upgrade 前完成全量备份,并在安装后运行 mariadb-upgrade 修复系统表。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

Ubuntu 20.04 默认仓库仅支持 MariaDB 10.3,升级至 10.6 需添加官方源并严格备份。避免数据丢失的核心是在执行 apt upgrade 前完成全量备份,并在安装后运行 mariadb-upgrade 修复系统表。

先说结论:升级过程不可逆,必须在操作前完成冷备或逻辑备份,且不能混用 Ubuntu 默认源与 MariaDB 官方源。

  • 先备份:使用 mariadb-dump 导出所有库或停止服务后打包 data 目录。
  • 再换源:移除 Ubuntu 默认 mariadb 包,配置 MariaDB 官方 apt 仓库。
  • 后修复:安装完成后必须运行 mariadb-upgrade 更新系统表结构。

命令速用版

# 1. 备份所有数据库
mariadb-dump `--all-databases` `--single-transaction` `--quick` > all_databases.sql

# 2. 添加 MariaDB 10.6 官方源 (示例)
apt-add-repository 'deb [arch=amd64] http://mirror.mariadb.org/repo/10.6/ubuntu focal main'

# 3. 升级并修复表结构
apt update && apt install mariadb-server
mariadb-upgrade

为什么会这样

跨大版本升级会导致系统表结构不兼容,直接替换二进制文件无法自动迁移元数据。Ubuntu 20.04 默认源锁定在 MariaDB 10.3,强行安装高版本包可能引发依赖冲突或数据目录格式错误。

分步处理

步骤 1:数据备份
停止服务后物理备份最安全,逻辑备份兼容性更好。确认备份文件可读取后再继续。

步骤 2:清理旧源
检查 apt 源列表,移除冲突的 PPA 或默认 mariadb 包,避免版本混淆。

Ubuntu 20.04 升级 MariaDB 10.6 数据丢失风险怎么避免?

步骤 3:安装新版本
配置官方源后执行 install,期间服务会重启,确保磁盘空间充足。

步骤 4:执行升级脚本
运行 mariadb-upgrade 检查并修复系统表,此步骤不可跳过,否则权限表或插件可能失效。

怎么验证是否生效

执行 mysql `--version` 确认版本号显示 10.6。查看 /var/log/mysql/error.log 确认无启动报错。登录数据库执行 SHOW VARIABLES LIKE 'version%'; 核对内部版本信息。

Ubuntu 20.04 升级 MariaDB 10.6 数据丢失风险怎么避免?

常见坑

未在升级前备份数据,导致升级失败无法回滚。跳过 mariadb-upgrade 步骤,导致权限异常或查询报错。混用 Ubuntu 默认源和官方源,导致依赖包冲突。

常见问题

可以直接从 10.3 升级到 10.6 吗?

可以,但建议阅读官方升级路径说明,确保中间无废弃特性影响业务。

升级失败如何回滚?

停止服务,卸载新版本,恢复旧版本二进制文件,导入备份的 SQL 文件或恢复 data 目录。

参考来源

MariaDB Knowledge Base: Upgrading from MariaDB 10.3 to 10.6 (https://mariadb.com/kb/en/upgrading-from-mariadb-10-3-to-10-6/)
Ubuntu Packages: mariadb-server in focal (https://packages.ubuntu.com/focal/mariadb-server)
MariaDB Download Repository Configurator (https://mariadb.com/download/)