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