標籤:MySQL報錯 ERROR2002 設定檔 my.cnf MySQL安裝
今天在為新的業務線搭架資料庫後,在啟動的時候報錯
[email protected]:/usr/local/mysql/bin# ./mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
在此記錄一下,希望能夠給遇到此問題的兄弟們提供一個解決問題的思路,有了思路後一步一步排查問題就比較容易了,但是我這個問題比較奇怪,如果有瞭解的兄弟,還不吝賜教。
首先介紹一下此問題出現的環境:
作業系統為:Ubuntu 14.04.5
資料庫版本為:5.6.39-log
資料庫安裝方式為二進位安裝
故障現象
資料庫初始化後啟動報錯
[email protected]:/usr/local/mysql/bin# ./mysqlERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
故障排查
一看資料庫進程是否啟動
如果資料庫進程沒有啟動,也會報這個錯
進程是錯在的
二 看設定檔中socket檔案的配置,並檢查socket檔案是否存在,許可權是否正確
設定檔中socket 檔案的位置配置在/tmp/mysql.sock下
但是報錯中去/var/run/mysqld/mysqld.sock 位置找設定檔,說明設定檔並沒有生效,但是比如其他資料檔案,記錄檔的目錄已經生效
三 看錯誤記錄檔中是否提供了有價值的資訊
查看錯誤記錄檔中沒有相關的報錯
故障解決:
問題原因一直找不到,往上翻會話的時候看到資料庫初始化完成後有以下輸出,
難道是因為資料庫啟動的時候讀了別的位置的設定檔?
我是按以下命令啟動的,已經指定了設定檔的位置
./mysqld_safe --defaults-file=/etc/my.cnf &
查看/etc/mysql/my.cnf
確實是去找的該設定檔中socket的位置
將/etc/mysql路徑下的設定檔重新命名後
[email protected]:/etc/mysql# cd /etc/mysql/[email protected]:/etc/mysql# lsconf.d my.cnf[email protected]:/etc/mysql# mv my.cnf my.cnf_bak
再次進入mysql命令列沒有報錯,問題解決
故障總結
可以用以下命令查看MySQL資料庫讀取設定檔的預設順序,
其實現在我還是很納悶,為什麼我制定了設定檔袋額位置還會讀取別的位置的設定檔呢?在資料庫初始化後的輸出有所體現,
這是問題解決就是把其他路徑下的設定檔重新命名
解決MySQL報錯ERROR 2002 (HY000)