程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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本身並未使用這個文件,應該是MYSQLDMYSQL的守護進程在使用),那麼重新啟動下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