解決MySQL報錯ERROR 2002 (HY000)

來源:互聯網
上載者:User

標籤: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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.