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

解決 MySQL「Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'」錯誤

     編輯:MySQL 綜合教學

解決 MySQL「Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'」錯誤

錯誤原因:my.cnf 中 socket 路徑與實際運行的 mysqld 進程生成的 socket 檔案路徑不一致。常見於廠商預裝環境修改了 datadir 但未同步更新客戶端預設 socket 路徑。

排查步驟

$ cat /etc/my.cnf
# 發現實際配置
datadir=/dat/data/mysql
socket=/dat/data/mysql/mysql.sock
# 但客戶端預設讀取 /var/lib/mysql/mysql.sock

兩種修復方案

方案一:修正 my.cnf 客戶端段(推薦)

[client]
socket=/dat/data/mysql/mysql.sock

[mysqld]
socket=/dat/data/mysql/mysql.sock

重啟 MySQL 服務後生效。

方案二:建立軟連結(快速臨時修復)

$ ln -s /dat/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
# 確保 /var/lib/mysql 目錄存在
$ mkdir -p /var/lib/mysql
$ ln -s /dat/data/mysql/mysql.sock /var/lib/mysql/mysql.sock

無需重啟,即刻生效。

驗證

$ mysql -u root -p
# 成功登入

核心原則:客戶端與服務端 socket 路徑必須一致。生產環境建議統一在 my.cnf 的 [client] 與 [mysqld] 區段同時設定。

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