程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL在服務器端出現ERROR 2002的解決辦法

MySQL在服務器端出現ERROR 2002的解決辦法

編輯:關於MYSQL數據庫

首先說明,服務器系統是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>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved