解決MySQL報錯ERROR 2002 (HY000)


今天在爲新的業務線搭架數據庫後,在啓動的時候報錯html

root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysqlmysql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)sql

在此記錄一下,但願可以給遇到此問題的兄弟們提供一個解決問題的思路,有了思路後一步一步排查問題就比較容易了,可是我這個問題比較奇怪,若是有了解的兄弟,還不吝賜教。數據庫


首先介紹一下此問題出現的環境:socket

操做系統爲:Ubuntu 14.04.5ide

數據庫版本爲:5.6.39-logspa

數據庫安裝方式爲二進制安裝操作系統


故障現象命令行

數據庫初始化後啓動報錯日誌

root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

故障排查

一看數據庫進程是否啓動

若是數據庫進程沒有啓動,也會報這個錯

進程是存在的image.png

二 看配置文件中socket文件的配置,並檢查socket文件是否存在,權限是否正確

image.png

配置文件中socket 文件的位置配置在/tmp/mysql.sock下

可是報錯中去/var/run/mysqld/mysqld.sock 位置找配置文件,說明配置文件並無生效,可是好比其餘數據文件,日誌文件的目錄已經生效

三 看錯誤日誌中是否提供了有價值的信息

查看錯誤日誌中沒有相關的報錯


故障解決:

問題緣由一直找不到,往上翻會話的時候看到數據庫初始化完成後有如下輸出,


image.png

難道是由於數據庫啓動的時候讀了別的位置的配置文件?

我是按如下命令啓動的,已經指定了配置文件的位置

./mysqld_safe --defaults-file=/etc/my.cnf &

查看/etc/mysql/my.cnf

確實是去找的該配置文件中socket的位置

image.png


將/etc/mysql路徑下的配置文件重命名後

oot@qsbilldatahis-db01:/etc/mysql# cd /etc/mysql/
root@qsbilldatahis-db01:/etc/mysql# ls
conf.d  my.cnf
root@qsbilldatahis-db01:/etc/mysql# mv my.cnf my.cnf_bak

再次進入mysql命令行沒有報錯,問題解決

image.png



故障總結

能夠用如下命令查看MySQL數據庫讀取配置文件的默認順序,

image.png

其實如今我仍是很納悶,爲何我制定了配置文件袋額位置還會讀取別的位置的配置文件呢?在數據庫初始化後的輸出有所體現,

這是問題解決就是把其餘路徑下的配置文件重命名

image.png

相關文章
相關標籤/搜索