Ubuntu 18 LTS下MariaDB 10.3升级改自定义数据库属主致服务宕机如何解决?
问题根因
Ubuntu 18.04 下的MariaDB 10.3安装包在升级时会自动执行权限校验逻辑,默认读取数据库配置中的运行用户与数据目录,对数据目录执行属主修正操作。你遇到的部分机器异常、部分正常的差异,本质是异常机器上的包维护脚本未正确读取到你自定义的运行用户配置,降级使用了默认的mysql用户执行chown操作导致的。
永久修复步骤
- 第一步:确认自定义配置的全局有效性
把user = mydbuser、datadir = /mydir/mariadb这两个配置项写入/etc/mysql/mariadb.conf.d/90-custom.cnf文件(如果没有就新建),确保配置优先级高于包自带的默认配置,包维护脚本会优先读取该路径下的配置文件。 - 第二步:修改debconf预设值,固定运行用户与用户组
执行以下命令写入debconf配置,避免安装包升级时使用默认用户:sudo debconf-set-selections <<EOF mariadb-server-10.3 mysql-server/user string mydbuser mariadb-server-10.3 mysql-server/group string mydbgroup EOF - 第三步:添加apt升级钩子,兜底修复权限
新建/etc/apt/apt.conf.d/80-mariadb-fix-perms文件,写入以下内容,确保每次MariaDB升级完成后自动修正数据目录权限:DPkg::Post-Invoke { "if dpkg -l | grep -q 'ii mariadb-server-10.3'; then chown -R mydbuser:mydbgroup /mydir/mariadb/; fi"; };
应急恢复方案
如果已经出现升级后服务宕机的情况,直接执行以下命令即可恢复:
sudo chown -R mydbuser:mydbgroup /mydir/mariadb/ sudo systemctl restart mariadb
内容的提问来源于stack exchange,提问作者freeAR
相关产品推荐
相关产品推荐

