由于做mariadb集群,将版本从自带的5.5升级到10.0.3,升级成功后发现起不来

查journal log,只有一行warning

can’t create test file /var/lib/mysql/core.lower-test

google了一下,有两种方案

第一是说selinux导致的,但是ucloud的镜像默认就是关闭selinux的,所以不是这个问题

第二说是apparmor限制了进程的目录读写,但是没有安装这个东西,所以也不是这个问题。

其他文件权限之类的都检查过了,也不会出现问题。

这时我发现,如果直接用mysqld_safe和mysqld命令,跳过systemctl启动进程,能够让MariaDB正常起来,于是就去检查mariadb.service

发现其中有一行

ProtectHome=true

注释是

# Prevent accessing /home, /root and /run/user

而我的datadir=/home/mysql

于是有两个方案

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

1.把它改成false,就能够正常启动服务了

2.移动mysql的数据库文件到非  /home, /root and /run/user 目录

解决

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄