温馨提示×

MariaDB在Debian上的升级步骤

小樊
40
2025-12-07 04:39:00
栏目: 云计算

Debian 上升级 MariaDB 的安全步骤

一 升级前准备

  • 备份与快照
    • 全量逻辑备份:对所有业务库执行 mysqldump,建议包含 --single-transaction --routines --triggers --events,并保存到离线/异地存储。
    • 物理文件备份:备份数据目录(如 /var/lib/mysql)、配置文件(如 /etc/mysql/)、以及错误日志与慢查询日志。
    • 如运行在虚拟机/云主机,创建系统快照以便一键回滚。
  • 版本与仓库确认
    • 查看当前版本:mysql --version 或 mariadb --version;记录现有仓库源(/etc/apt/sources.list.d/ 下 MariaDB 相关条目)。
    • 规划目标版本:优先选择当前 Debian 稳定版仓库中的 MariaDB 版本,避免跨大版本跳跃;跨主版本升级需额外评估与测试。
  • 维护窗口与回滚预案
    • 选择低峰时段执行,设置回滚触发条件(升级失败、关键业务检查不通过即回滚)。
    • 准备回滚方案:保留旧版本包与数据目录快照;必要时用备份快速恢复。
  • 依赖与兼容性检查
    • 确认应用、ORM/驱动、备份工具(如 xtrabackup/mariabackup)、监控告警对目标 MariaDB 版本的兼容性。
    • 如系统存在 SELinux/AppArmor,确认策略允许新版本 MariaDB 运行。

二 就地升级步骤(同版本系列内)

  • 更新索引与系统包
    • sudo apt update && sudo apt upgrade -y
  • 仅升级 MariaDB 相关包
    • sudo apt install --only-upgrade mariadb-server mariadb-client -y
  • 处理配置文件冲突
    • 若出现如 /etc/mysql/mariadb.conf.d/50-server.cnf 的“已修改 vs 维护者版本”提示,建议先选 D 查看差异,再按需选择 Y/I(采用新版本)N/O(保留当前),避免误覆盖关键自定义。
  • 重启服务并验证
    • sudo systemctl restart mariadb
    • mysql -V 或登录 MariaDB 执行 SELECT VERSION(); 确认版本号
    • 检查服务状态:sudo systemctl status mariadb;按需查看错误日志(/var/log/mysql/error.log)。

三 跨版本或指定版本升级(更换仓库)

  • 准备新仓库
    • 方式 A(官方仓库脚本):下载并运行 MariaDB 提供的仓库设置脚本(会创建 /etc/apt/sources.list.d/mariadb.list)。如文件已存在,先备份后执行,避免冲突。
    • 方式 B(手动添加):在 /etc/apt/sources.list.d/ 新建 mariadb.list,写入对应 Debian 代号与版本仓库,例如 Debian bookworm 可用 MariaDB 11.5 仓库;导入 GPG 公钥到受信任密钥环目录(/etc/apt/trusted.gpg.d/),注意 apt-key 已弃用。
  • 执行升级
    • sudo apt update
    • 建议先仅升级服务器包:sudo apt install mariadb-server
    • 如需同步客户端工具:sudo apt install mariadb-client
    • 重启服务:sudo systemctl restart mariadb
  • 验证
    • mysql -V 与 SELECT VERSION(); 核对目标版本;检查错误日志与系统资源。

四 升级后验证与常见问题

  • 功能与数据验证
    • 校验表与索引:CHECK TABLE …; 对 InnoDB 可校验一致性。
    • 抽样回归关键业务查询/报表,确认执行计划与结果一致。
    • 验证复制(如启用):SHOW SLAVE STATUS\G / SHOW REPLICA STATUS\G,确认 Seconds_Behind_Master 为 0 且无错误。
  • 常见故障与处理
    • 配置冲突:升级时选择保留本地配置,升级后按需合并差异,再逐步启用新参数。
    • 权限/认证变化:部分版本升级后可能调整认证插件或本地 root 登录方式,必要时执行 mysql_secure_installation 或调整用户插件/host。
    • 启动失败:优先查看 /var/log/mysql/error.log,常见为权限、磁盘空间、InnoDB 日志/表空间不兼容等;必要时用备份回滚到升级前状态。

0