【MySQL】修改配置后,重启MySQL报错[ERROR] The server quit without updating PID file

问题:

在没有修改配置时,MySQL启动正常;

错1:修改配置后MySQL启动不了,报错:

[root@localhost mysql]# service mysql restart  
Starting MySQL...[ERROR] The server quit without updating PID file (/usr/local/mysql/data/mysqld.pid).  

错2:输入命令mysql,报错can’t connect to local mysql server through socket ‘/var/run/mysqld/mysqld.sock’。 

连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”

分析:

错1原因:是这个存放mysqld.pid的目录,所属者 不是mysql(服务),也就是说 mysql服务没有“读写” 这个目录内容的权限;

例如:

看下边的文件,文件位置是“/data/dmain”,没有放在安装mysql的目录下,所以现在的目录文件 “所有者”  是root ,

则说明“mysql服务”队这些文件没有操作权限,而在mysql服务重启时,需要读这里的文件进行读写,所有在操作文件读写的过程中就会出现问题,只有将这些文件的所有者修改为mysql才能将文件读写的权限归属到mysql服务下;这样才能保证MySQL服务 重启时 必要文件读写的功能。

需要修改目录的所有者(相当于 ‘’设置权限‘’)下图示:(也就是将文件的所有者 改为 mysql)

具体操作命令:

其实就一句:   chown -R mysql:mysql  【mysql相应的data目录位置】

执行结果为:

修改完成后,重启mysql服务成功;

 

提示:

1、【mysql相应的data目录位置】 这个目录位置,是根据mysql相关配置文件 my.cnf 中设置的如:

datadir=/data/dmain   

socket=/data/dmain/mysqld.sock

 

附加:摘录网上各位大佬的“奇淫绝技”:

看见这个不要惊慌,先把刚才修改的配置注释掉,看是不是配置有误!大部分是手误造成。 
如果不行,再尝试一下方法:

1.可能是/usr/local/MySQL/data/mysqld.pid文件没有写的权限
解决方法 : 
给予权限,执行 
“chown -R mysql:mysql /usr/local/MySQL/data/” 
“chmod -R 755 /usr/local/mysql/data” 
然后重新启动mysqld!

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

3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法: 
去mysql的数据目录/data看看,如果存在mysql-bin.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
解决方法: 
关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
 

####################################################################################

遇到的问题---mysql 启动错误-server PID file could not be found

2013年11月14日 17:46:18 张小凡vip 阅读数 72509

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q383965374/article/details/16120355

[root@centos var]# service mysqld stop

MySQL manager or server PID file could not be found!       [FAILED]

解决办法:

首先查看一下进程

[root@irxpert-test/]# ps aux |grep mysq*

root    10274  0.0  0.0  68160  1336 ?        S    13:43   0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/irxpert-test.pid
mysql    10353  0.0  1.0 344360 39464 ?        Sl   13:43   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/irxpert-test.err --pid-file=/var/lib/mysql/irxpert-test.pid
root     11884  0.0  0.0  63384   760 pts/1    S+   15:44   0:00 grep mysq*

如果看到上面的内容,那说明,Mysql的进程卡死了,这时用就要把这些卡死的进程都关闭

[root@centos mysql]# kill10274

[root@centos mysql]# kill10353

启动Mysql就ok了

[root@centos mysql]# service mysql start

Starting MySQL.                                            [  OK  ]

 

如果杀掉进程之后还是不行。

具体要看报错信息 如果没有指定日志路径 一般在是 /data/mysql 中的localhost.err文件中可以看到信息。

如果线程中无死进程 可以先看 service mysql status 看下状态 根据提示删掉多余的东西 

进入/data/mysql 也就是你的数据库目录 把多余的删除,包括localhost.err 和其他 index等东西

如果 多重启几次  一直执行 service mysql start 就可以重启成功了

 

#################################################################################

我碰到的同样问题。。。。原来是home目录下 内存满了。。删了几个文件后重新启动 ok

#################################################################################

连接MySql报错“can't connect to local mysql server through socket '/var/run/mysqld/mysqld.sock'”

情况:

我是在ubuntu上安装mysql的,系统提示我安装mysql-client。我安装之后,输入命令mysql,报错can’t connect to local mysql server through socket ‘/var/run/mysqld/mysqld.sock’。 
原因:还需要安装mysql-server 
解决办法:apt-get install mysql-server

安装完之后,会提示设置密码,用户名默认root。

使用mysql登录命令:mysql -uroot -pXXXXXX(root为用户名,xxx为密码)即可登录成功

 

########################################################################################

mysql Can't connect to local MySQL server through socket 问题解决

系统环境:Mac。

操作过程:使用mysql -u{用户名} -p{密码} 失败。

错误信息:

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

原因分析:

1.可能mysql服务停止了。

  mysqld_safe是一个shell 脚本,会调用mysqld启动mysql服务器,并监听服务器。

   如果mysqld进程异常终止,mysqld_safe将自动重启mysqld。

运行

/usr/local/mysql/bin/mysqld_safe &

&为后台启动。

后再次使用:

mysql -u{用户名} -p{密码}

成功!

分类: mysql

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值