mysqld_safe error: log-error set to '/data/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.The server quit without updating PID file (/data/mysql/mysqld.pid)

[oot@cent65 bin]# service mysqld start
Starting MySQL.2019-10-28T15:56:47.786960Z mysqld_safe error: log-error set to '/data/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/data/mysql/mysqld.pid).[失败]

[root@cent65 bin]# touch /data/log/mysqld.log
添加文件后,log错误没了,pid还有,看权限也没啥问题,又重新授权一次还是不行。。。
其中datadir=/data/mysql

[root@cent65 log]# cd /data/mysql
[root@cent65 mysql]# ll
总用量 110652
-rw-r----- 1 mysql mysql 56 10月 29 00:12 auto.cnf
-rw------- 1 mysql mysql 1676 10月 29 00:12 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 10月 29 00:12 ca.pem
-rw-r--r-- 1 mysql mysql 1112 10月 29 00:12 client-cert.pem
-rw------- 1 mysql mysql 1680 10月 29 00:12 client-key.pem
-rw-r----- 1 mysql mysql 425 10月 29 00:12 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 10月 29 00:12 ibdata1
-rw-r----- 1 mysql mysql 50331648 10月 29 00:12 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 10月 29 00:12 ib_logfile1
drwxr-x--- 2 mysql mysql 4096 10月 29 00:12 mysql
drwxr-x--- 2 mysql mysql 4096 10月 29 00:12 performance_schema
-rw------- 1 mysql mysql 1680 10月 29 00:12 private_key.pem
-rw-r--r-- 1 mysql mysql 452 10月 29 00:12 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 10月 29 00:12 server-cert.pem
-rw------- 1 mysql mysql 1676 10月 29 00:12 server-key.pem
drwxr-x--- 2 mysql mysql 12288 10月 29 00:12 sys
[root@cent65 mysql]# pwd
/data/mysql
[root@cent65 mysql]# chown -R mysql:mysql /data/mysql
[root@cent65 mysql]# chmod -R 755 /data/mysql
[root@cent65 mysql]#
上面重新授权不记得有没验证...
我怒了!直接执行下面的。。。
[root@cent65 ~]# chown -R mysql:mysql /data
[root@cent65 ~]# chmod 775 /data
[root@cent65 ~]# service mysqld start
Starting MySQL.[确定]

于是,从网上扒拉了一圈,能试的基本上都试一下
问题的原因总结的灰常到位

出现问题的可能性
1、可能是/usr/local/mysql/data/数据目录mysql用户没有权限(修改数据目录的权限)
解决方法 :给予权限,执行 "chown -R mysql.mysql /usr/local/mysql/data"然后重新启动mysqld

2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!

3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的二进制日志目录看看,如果存在mysql-binlog.index,就赶快把它删除掉吧

4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:先临时改为警告模式:[root@www php]# setenforce 0
然后打开/etc/sysconfig/selinux,把SELINUX=enforcing改为SELINUX=disabled

8、启动失败注意检查数据目录的权限,要与mysql程序运行用户权限一致。
[root@db01 mysql]# chown -R mysql.mysql ../mysql
最好是整个mysql程序目录都授权予mysql用户。

原文链接:https://blog.csdn.net/eagle89/article/details/79813405

posted @ 2019-10-29 00:55  ritchy  阅读(3530)  评论(1编辑  收藏  举报