手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mysql>列表

MySQL在服务器端出现ERROR

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

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


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!