linux下連線mysql報錯ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysq

Coonger發表於2020-12-07

首先預設已經檢視過mysql伺服器是否正常執行,和許可權設定的問題。

2002報錯大意是找不到對應檔案,不能通過這個socket連線到本地mysql。

網上大多教程多說手動修改/etc/my.cnf檔案
有可能還沒這個檔案,那就手動建立一個,新增以下內容

[mysqld] 
datadir=/usr/local/mysql/data 
socket=/var/lib/mysql/mysql.sock 

[mysql.server] 
user=mysql 
basedir=/usr/local/mysql 

[client] 
socket=/var/lib/mysql/mysql.sock 

然而service mysql restart後還是不會自動生成mysql.sock檔案,依舊報錯,不過這給了我啟發,難道自動生成的不一定在這?
使用find命令找找

find / -name *mysql*sock*

在這裡插入圖片描述
果然,找到了一個很像的檔案mysqld.sock
憑藉之前安裝mysql要解決中文亂碼問題的記憶,似乎看到過mysqld.sock這傢伙。
檢視mysql的基本配置資訊

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

可以看到預設的socket對應 /var/run/mysqld/mysqld.sock
在這裡插入圖片描述
所以照這修改上面第一版的/etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
basedir=/usr
socket=/var/run/mysqld/mysqld.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[client]
port=3306
socket=/var/run/mysqld/mysqld.sock

重新連結mysql,大功告成!
在這裡插入圖片描述

參考連結:
1
2

相關文章