首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

解決 MySQL「Can't connect to local MySQL server through socket」錯誤:Socket 路徑不匹配一鍵修復

     編輯:MySQL 綜合教學

解決 MySQL「Can't connect to local MySQL server through socket」錯誤:Socket 路徑不匹配一鍵修復

錯誤現象

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

根因分析

客戶端默認讀取 /var/run/mysqld/mysqld.sock,但實際 MySQL 配置(/etc/my.cnf)中指定的是 /tmp/mysql.sock:

[mysqld]
socket = /tmp/mysql.sock

路徑不一致導致連接失敗。

最快修復:建立軟連接

ln -s /tmp/mysql.sock /var/run/mysqld/mysqld.sock
# 確保目錄存在
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

徹底修復:統一配置

  1. 修改 /etc/my.cnf,在 [client] 和 [mysqld] 同步設置:
[client]
socket = /tmp/mysql.sock

[mysqld]
socket = /tmp/mysql.sock
  1. 重啟 MySQL:systemctl restart mysqld。
  2. 驗證:mysql -uroot -p -S /tmp/mysql.sock 或直接 mysql -uroot -p。

補充:查看當前 Socket 路徑

mysqladmin variables | grep socket
# 或
SHOW VARIABLES LIKE 'socket';

避坑提示

  • 多實例部署時,每個實例必須指定唯一 socket 路徑,客戶端連接時用 -S 參數指定。
  • /tmp 目錄可能被定期清理,建議將 socket 放在 /var/lib/mysql/ 或 /var/run/mysqld/ 並設置粘滯位權限。

一條軟連接或一處配置同步,徹底告別 Socket 連接失敗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved