首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

mysql.sock 遺失無法連線?改用 TCP 協議繞過 Unix Socket:--protocol=TCP 實戰

     編輯:MySQL 資料庫相關知識

現象


$ mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/home/mysql/mysql.sock' (2)

預設 localhost 走 Unix Socket,Socket 檔遺失/路徑錯誤即連線失敗。

解決:強制指定 TCP 協議


# MySQL 4.1+ 支援 --protocol 參數
mysql --protocol=TCP -u root -p -P 3307 -h 127.0.0.1
# 成功連線,繞過 Socket 檔案

四種協議選項

協議參數適用場景
TCP/IP--protocol=TCP跨機器、Socket 故障、IPv6
Unix Socket--protocol=SOCKET本機高效能、預設 localhost
Named Pipe--protocol=PIPEWindows 專用
Shared Memory--protocol=MEMORYWindows 專用、極低延遲

根治建議

  • 檢查 my.cnf [mysqld] socket 路徑與 [client] 一致。
  • 確認 Socket 目錄權限(mysql 用戶可寫)。
  • 啟動腳本檢查 Socket 存在性,遺失則報警。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved