我們的LAMP是搭建在UBUNTU 12.04 LTS上的. LAMP是通過編譯的方式進來安裝的. 在一次處理意外掛機時由於未知的原因在重啟后發現無法連接數據庫了, 在打開網站時出現如下的的提示:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
出錯的信息已經提示的很清楚, 就是/var/run/mysqld/mysqld.sock 這個文件找不到了, 試着通過PuTTY去查詢該文件時, 果然發現是無法這個文件不存在. 並且無法啟動MYSQL, 在無數次問詢度娘及狗狗之后, 也沒有發現有權威的解決方法(方法是有, 但是可能沒有找到). 一度懷疑沒有這個文件, 可是在我本地搭建的同樣的環境中卻有這個文件存在. 那就證明了一件事, 就是這個文件果然是在重啟過程中丟失了. 既然本地有, 那就把本地的文件COPY到服務器上就可以吧, 本以為非常簡單的事情, 結果卻發現無法拷下來. 如圖:

即使強制復制也不行. 遍尋網絡也沒有這樣的解決方案, 關注點再次轉回直接在服務器上進行修復. 在查詢網絡時, 發現有用其他的方式安裝的路徑是放在/var/lib/mysql/mysql.sock, 如果是這樣的話, 就給它建一個軟鏈接就好. 由於我的mysql是編譯安裝的, 它的配置文件是在這個地方: /var/run/mysql/, 這樣的話就把已經存在的文件地址里鏈接過去:
ln -s /var/lib/mysql/mysql.sock /var/run/mysql/mysql.sock
然后重啟服務即可.
后來查看了一下這個mysql.sock文件屬性, 有如下的提示:

注意mysqld.sock的屬性是Srwxrwxrwx, 這個文件類型是s, 很少見的一種文件類型, 后狗狗了一下, 發現是套接字文件(sockets),這種文件一般用在網絡上的資料套接,mysqld守護進程生成了這個文件,其他與mysql相關的程序想使用mysql,估計就是通過這個文件了。這種特殊文件即使是最高權限的root用戶,也是不能查看不能編輯的,有點像檔案標志是p的管道文件.
而我的情況不一樣, 並沒有/var/lib/mysql/mysql.sock這個文件, 所以還要想其他的方法, 后來我找到另一種解決, 就是重建授權表, 具體如下操作:
#usr/local/bin/mysql_install_db //以root重建授權表
或者是以mysql的身份:
#su mysql
$/usr/local/bin/mysql_install_db //重建授權表
然后就會出現如下的信息:

$/usr/local/bin/mysqld_safe & //mysqld_safe & 啟動mysql的守護進程
$/usr/local/bin/mysql //測試
mysq>bye;
至此, ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 的問題解決.
source: http://www.cnblogs.com/wwufengg/p/error-2202-can-not-connect-mysql.html
