MySQL在服务器端出现ERROR 2002的解决办法

ZDNet软件频道 时间:2009-11-11 作者:网络 | 网络 我要评论()
本文关键词:Mysql 服务器 ERROR 2002
本文讲解MySQL在服务器端出现ERROR 2002的解决办法

首先说明,服务器系统是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>

查看本文来源


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134