Ubuntu 上 MariaDB 版本兼容性与升级要点
一 版本矩阵与系统源差异
| Ubuntu 版本 | 系统源常见 MariaDB 版本 | 建议 |
|---|---|---|
| 16.04 Xenial | 10.0(已 EOL) | 不建议继续使用系统源;如需新版本,使用 MariaDB 官方仓库升级到受支持的 10.1/10.2/10.3/10.5 等 |
| 18.04 Bionic | 10.1 | 如需 10.2+,添加官方仓库后升级;不建议跨多主版本一次性跳跃 |
| 20.04 Focal | 10.3 | 建议停留在 10.3 或按官方仓库小版本升级 |
| 22.04 Jammy | 10.6 | 建议停留在 10.6 或按官方仓库小版本升级 |
| 24.04 Noble | 10.11 | 建议停留在 10.11 系列小版本更新 |
二 常见兼容性问题与症状
升级后 root 无法登录,报错:ERROR 1524 (HY000): Plugin ‘unix_socket’ is not loaded
原因:高版本 MariaDB 默认使用 unix_socket 认证,某些场景下插件未加载或权限配置不当。
处理:在维护模式重置 root 认证方式(示例将 root 改为密码认证):
sudo systemctl stop mariadbsudo mysqld_safe --skip-grant-tables &USE mysql;ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('YourNewPass');FLUSH PRIVILEGES;sudo systemctl restart mariadbIDENTIFIED VIA unix_socket 并确保插件可用。升级后 服务无法启动,journal 提示插件或权限问题
现象:systemctl status mariadb 显示失败,journalctl -xeu mariadb 可见如 GSSAPI 插件默认主体不匹配、或 InnoDB 数据文件异常等。
处理思路:
从 MySQL 迁移到 MariaDB 的兼容性边界
三 安全升级与回滚流程
升级前
mysqldump -A --single-transaction --routines --triggers --hex-blob --set-gtid-purged=OFF > backup.sqlmysql --version、mariadb --version、sudo systemctl status mariadb、cat /etc/os-release升级中
sudo apt-get install -y software-properties-common apt-transport-https ca-certificatessudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirrors.evowise.com/mariadb/repo/10.4/ubuntu bionic main'sudo apt-get update && sudo apt-get install mariadb-server mariadb-clientsudo mysql_upgrade -u root -p(必要时加 --force)以完成系统表与权限结构升级。升级后
sudo mysql_secure_installation回滚
四 运维与配置建议