服务器重启了一下,然后启动后发现mysql自动启动没有生效,于是手动通过systemctl启动mysqld,然后就报错:Starting MySQL...........The server quit without updating P[FAILED](/data/mysql/iz2zebvmy1qv3fao9c5riuz.pid).
根据配置my.cnf文件找到错误日志,没看出什么有用信息,然后手动创建了报错中的/data/mysql/iz2zebvmy1qv3fao9c5riuz.pid文件并修改了其权限和用户组(mysql用户)
然后再次执行systemctl start mysqld,发现没有报错。执行 ps -ef | grep mysql
也有进程,但是在连接mysql时又失败,再次执行ps -ef | grep mysql发现原先的进程又没了,创建的pid文件也没了,应该是mysql进程销毁的时候自动删除了。
另想他法,不用systemctl或service直接执行mysqld,报错:
没权限?那之前是怎么启动起来的?
算了试试吧,查看/data/mysql目录所有者是mysql啊,里面也都是mysql用户,保险起见执行了下
chown -R mysql:mysql /data/mysql
然后再次执行mysqld还是一样的结果,最后发现/data所有者是www,权限是drwxrwx--- 19 www www。
groups mysql发现mysql用户只属于mysql分组,那就加一个分组
好了再次执行systemctl start mysqld或者systemctl restart mysqld没有报错,查看进程
运行正常了,看来是目录权限问题,但还是有个问题,之前是怎么启动起来的呢(之前就已经正常运行了很长时间)还是说重启了一下把用户组给弄丢了?或者是运行期间我手动改了目录权限没啥印象了,不过最后问题还是解决了。