MySQL在服务器端出现ERRor 2002的解决办法
时间:2007-02-17 来源:PHP爱好者
首先说明,服务器系统是FREEBSD4.10-RELEASE
刚才装那个PLESK未成功
看LOG发现是无法使用他自己的帐号向MYSQL写数据
于是想打开MYSQL添加他的用户(因为服务器的MYSQL ROOT密码不为空) CODE: [Copy to clipboard]
#mysql -u root -p CODE: [Copy to clipboard]
Enter password:********** 出现提示:
CODE: [Copy to clipboard]
ERRor 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
坏了!刚才的PLESK这个SB软件,自动把TMP目录下的MYSQL.SOCK文件DEL了,怎么办?要知道没这个文件,MYSQL没办法运行的.
找找别的地方有没有吧…… CODE: [Copy to clipboard]
#find / -name mysql.sock 出现提示 CODE: [Copy to clipboard]
#
完,系统里没这个文件,怎办?
考虑一下,MYSQL本身并未使用这个文件,应该是MYSQLD(MYSQL的守护进程在使用),那么重新启动下MYSQL试试! CODE: [Copy to clipboard]
#mysql restart 出现提示: CODE: [Copy to clipboard]
ERRor 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 无法重启
再仔细想想……应该是有还有系统进程没干掉!我找跟MYSQL有关的进程!
CODE: [Copy to clipboard]
#ps -aux|grep mysql
显示结果: CODE: [Copy to clipboard]
mysql 137 0.0 1.5 152956 7988 ?? S 3:05AM 0:00.79 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/d root 111 0.0 0.1 648 452 con- I 3:05AM 0:00.01 /bin/sh /usr/local/bin/mysqld_safe --user=mysql --datadir=/var/ 找到2个进程:
CODE: [Copy to clipboard]
#kill 137 CODE: [Copy to clipboard]
#kill 111
进程KILL了, CODE: [Copy to clipboard]
#mysql restart
出现提示: CODE: [Copy to clipboard]
ERRor 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
CODE: [Copy to clipboard]
#cd /usr/ports/databases/mysql41-server CODE: [Copy to clipboard] make deinstall
CODE: [Copy to clipboard] make reinstall
一般来说重装前需要移动走数据……移动数据的命令是…… CODE: [Copy to clipboard]
#mv /数据所在路径 /备份路径
这样重装数据库后数据不至于丢失后……可以再慢慢弄回来…… 可是真的有必要重新装MYSQL吗? 我仔细的想了想:
MYSQL是通过MYSQLD这个守护进程运行的,守护进程需要加载mysql.SOCK,mysql.sock被那个SBplesk软件删除后MYSQLD出错,这样的话根本无法重启MYSQL(似乎很严重,呵呵!),但是通过仔细观察他的提示可以发现SOCK其实只是临时文件(因为它被放在TMP目录下了),那么系统每次自动清理后一定会丢失,那MYSQL怎么解决这个问题?去看看mysqld.sh文件,打开看了下,豁然开朗!原来mysql.sock每次启动MYSQL时自动生成!那就简单多了……MYSQL无法RESTART,我总可以REBOOT服务器吧?说干就干~~~ CODE: [Copy to clipboard]
#reboot
回车确认,丢失连接,10秒后重连,用ROOT身份登陆后,输入: CODE: [Copy to clipboard]
#mysql -u root -p CODE: [Copy to clipboard]
Enter password:**********
出现提示:
CODE: [Copy to clipboard]
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 225 to server version: 4.0.18-log Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql>
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
刚才装那个PLESK未成功
看LOG发现是无法使用他自己的帐号向MYSQL写数据
于是想打开MYSQL添加他的用户(因为服务器的MYSQL ROOT密码不为空) CODE: [Copy to clipboard]
#mysql -u root -p CODE: [Copy to clipboard]
Enter password:********** 出现提示:
CODE: [Copy to clipboard]
ERRor 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
坏了!刚才的PLESK这个SB软件,自动把TMP目录下的MYSQL.SOCK文件DEL了,怎么办?要知道没这个文件,MYSQL没办法运行的.
找找别的地方有没有吧…… CODE: [Copy to clipboard]
#find / -name mysql.sock 出现提示 CODE: [Copy to clipboard]
#
完,系统里没这个文件,怎办?
考虑一下,MYSQL本身并未使用这个文件,应该是MYSQLD(MYSQL的守护进程在使用),那么重新启动下MYSQL试试! CODE: [Copy to clipboard]
#mysql restart 出现提示: CODE: [Copy to clipboard]
ERRor 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 无法重启
再仔细想想……应该是有还有系统进程没干掉!我找跟MYSQL有关的进程!
CODE: [Copy to clipboard]
#ps -aux|grep mysql
显示结果: CODE: [Copy to clipboard]
mysql 137 0.0 1.5 152956 7988 ?? S 3:05AM 0:00.79 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/d root 111 0.0 0.1 648 452 con- I 3:05AM 0:00.01 /bin/sh /usr/local/bin/mysqld_safe --user=mysql --datadir=/var/ 找到2个进程:
CODE: [Copy to clipboard]
#kill 137 CODE: [Copy to clipboard]
#kill 111
进程KILL了, CODE: [Copy to clipboard]
#mysql restart
出现提示: CODE: [Copy to clipboard]
ERRor 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
CODE: [Copy to clipboard]
#cd /usr/ports/databases/mysql41-server CODE: [Copy to clipboard] make deinstall
CODE: [Copy to clipboard] make reinstall
一般来说重装前需要移动走数据……移动数据的命令是…… CODE: [Copy to clipboard]
#mv /数据所在路径 /备份路径
这样重装数据库后数据不至于丢失后……可以再慢慢弄回来…… 可是真的有必要重新装MYSQL吗? 我仔细的想了想:
MYSQL是通过MYSQLD这个守护进程运行的,守护进程需要加载mysql.SOCK,mysql.sock被那个SBplesk软件删除后MYSQLD出错,这样的话根本无法重启MYSQL(似乎很严重,呵呵!),但是通过仔细观察他的提示可以发现SOCK其实只是临时文件(因为它被放在TMP目录下了),那么系统每次自动清理后一定会丢失,那MYSQL怎么解决这个问题?去看看mysqld.sh文件,打开看了下,豁然开朗!原来mysql.sock每次启动MYSQL时自动生成!那就简单多了……MYSQL无法RESTART,我总可以REBOOT服务器吧?说干就干~~~ CODE: [Copy to clipboard]
#reboot
回车确认,丢失连接,10秒后重连,用ROOT身份登陆后,输入: CODE: [Copy to clipboard]
#mysql -u root -p CODE: [Copy to clipboard]
Enter password:**********
出现提示:
CODE: [Copy to clipboard]
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 225 to server version: 4.0.18-log Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql>
非常全面的一个php技术网站,php爱好者站 http://www.phpfans.net 有相当丰富的文章和源代码.
相关阅读 更多 +