CentOS6.5 [ERROR] /usr/libexec/mysqld: Can't create/write to file '/var/lib/mysqld/mysqld.pid' (Errcode: 2)

环境是CentOS6.5,先贴个错误代码:

这个问题解决了大半天,浪费了好多时间,不过也算是值了。

事故起因是因为突然断电,mysql server直接干掉了,也没有备用电源,重启了之后看日志tail -f /var/log/mysqld.log,刚开始报错:

错误信息 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111) 

报错(2)是不可识别mysql.sock,因为可能在你的/var/lib/mysql已经含有mysql.scok文件,这个东西每次建立mysql连接的时候都会有,但是由于掉线的原因,删掉吧。。。

另外如果看见有什么ib_logfile0、ib_logfile1、ib_*乱七八糟,都是掉线的时候临时保存的文档,如果你要看的话,自己去翻编码查看吧...lz也没搞过,总之,删掉吧。。。

mv ./ib_logfile0 ./ib_logfile_0 

错误信息 :ERROR 2002 (HY000): Can't connect to local MySQL server server through socket '/var/lib/mysql/mysql.sock'(111) 

报错(111)是需要找不到指定位置,需要指定一下位置,或者经过完美的重启,server抽风也能好。

查了半天,说什么的都有,不靠谱,还有说ln -r的,最后找到直接解决方法了:

修改/etc/my.cnf,先添加一个sock连接位置,因为链接mysql的方式是本质还是通过socket,所以要是要更改修改mysql的配置文件: 

  socker=/var/lib/mysql/mysql.sock  # 加在mysqld下,没有就随便添加

解决:
修改 /etc/my.conf
原来的
 #pid-file=/var/run/mysqld/mysqld.pid
修改为
pid-file=/var/lib/mysql/mysqlid.pid

最后:ps -A | grep mysql 查看一下进程号,直接kill -9 杀掉

最后在重新启动mysql,大功告成。

如果忘了root密码....

直接mysql——>use mysql; ——> update user set password=password"新密码" where user="root”;——> flush privileges;

5个小时也算值了 T^T

原文地址:https://www.cnblogs.com/xiapu5150/p/7601579.html