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

MySQL 啟動報錯 /tmp/mysql.sock 不存在:根因分析與三步修復

     編輯:MySQL 綜合教學

錯誤現象

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

同時 mysqladmin 同樣報錯。

根因追蹤

  1. 啟動腳本嘗試寫 PID 檔 /var/run/mysqld/mysqld.pid 失敗 (目錄不存在)
  2. 手動建立目錄與 PID 檔後,MySQL 進程啟動成功,但 socket 檔預設生成在 /var/lib/mysql/mysql.sock
  3. 客戶端預設讀取 /tmp/mysql.sock,路徑不一致導致連線失敗

三步修復

# 1. 確保 PID 目錄存在
mkdir -p /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld

# 2. 建立 socket 軟連接 (讓客戶端找到真實 socket)
ln -sf /var/lib/mysql/mysql.sock /tmp/mysql.sock

# 3. 驗證連線
mysql -u root -p
# 成功進入 MySQL monitor

永久解決方案 (my.cnf 統一路徑)

[mysqld]
socket=/var/lib/mysql/mysql.sock
pid-file=/var/run/mysqld/mysqld.pid

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

修改後重啟 MySQL,客戶端無需軟連接即可直連。

補充:RedHat/CentOS 典型路徑對照

檔案預設路徑建議統一路徑
socket/tmp/mysql.sock (客戶端) /var/lib/mysql/mysql.sock (服務端)/var/lib/mysql/mysql.sock
pid-file/var/run/mysqld/mysqld.pid/var/run/mysqld/mysqld.pid

快速檢查命令

# 查看當前 socket 位置
mysql_config --socket
# 或
netstat -ln | grep mysql

統一 socket 路徑,徹底告別 /tmp/mysql.sock 找不到的困擾。

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