欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysqld_safe error: log-error set to '/data/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.The server

程序员文章站 2022-04-21 17:30:08
[oot@cent65 bin]# service mysqld startStarting MySQL.2019-10-28T15:56:47.786960Z mysqld_safe error: log-error set to '/data/log/mysqld.log', however f ......

[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