mysql 备份出错,但是网站运行正常

localhost:~# /usr/local/mysql/bin/mysqldump --lock-tables=FALSE -uroot -p webadb_com > /root/webabc.sql

Enter password:

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql-5.1.57.sock' (2) when trying to connect


查看mysql.socket

localhost:~# netstat -ln | grep mysql

unix 2 [ ACC ] STREAM LISTENING 492228776 /tmp/mysql-5.1.57.sock


查看mysql进程

localhost:~# ps aux|grep mysql

root 3638 0.0 0.0 7552 864 pts/2 S+ 10:45 0:00 grep --color mysql

root 23896 0.0 0.0 3956 292 ? S Sep07 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/db --pid-file=/var/run/mysqld/mysql-5.1.57.pid

mysql 24396 21.8 25.0 2745632 1013672 ? Sl Sep07 2739:05 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/data/db --user=mysql --log-error=/var/log/mysql/localhost.err.log --pid-file=/var/run/mysqld/mysql-5.1.57.pid --socket=/tmp/mysql-5.1.57.sock --port=3306


重启mysql

localhost:~# /etc/init.d/mysqld restart

MySQL manager or server PID file could not be found! ... failed!

Starting MySQL

..........................................................................................................Manager of pid-file quit without updating file. ... failed!



查看配置文件

AU02:/tmp# cat /etc/myconf/mysql/my.cnf |grep socket

socket = /tmp/mysql-5.1.57.sock


上面都排查了,没有错误,说明mysql运行正常的,偶然出现问题,应该考虑别的方面,后来想起来mysql.socket运行在/tmp,是一个临时文件存放区,重启会清空,ls /tmp/grep mysql-5.1.57.socket果然不存在,进行如下操作即可正常。

在/tmp创建一个mysql.socket 文件,再把属组,属主更改为mysql的即可

touch /tmp/mysql-5.1.57.sock

chown mysql.mysql /tmp/mysql-5.1.57.sock