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

解決 phpMyAdmin #2002 無法登入 MySQL 服務器:Socket 與 Host 綁定修正

     編輯:MySQL 資料庫相關知識

錯誤代碼含義

#2002 (CR_CONNECTION_ERROR) 表示客戶端無法透過 Socket/TCP 連上 MySQL Server,常見於「服務未啟動」、「Socket 路徑錯誤」、「Host 解析異常」。

方案一:修改 phpMyAdmin 連線 Host (推薦)

  1. 將 config.sample.inc.php 複製為 config.inc.php。
  2. 編輯 config.inc.php:
$cfg['Servers'][$i]['host'] = 'localhost';  // 改為
$cfg['Servers'][$i]['host'] = '127.0.0.1';

原理:localhost 觸發 Unix Socket 連線 (預設 /tmp/mysql.sock),127.0.0.1 強制走 TCP/IP 回環,繞過 Socket 找不到問題。

方案二:修正 PHP 的預設 Socket 路徑

編輯 php.ini:

mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
pdo_mysql.default_socket = /tmp/mysql.sock

重啟 PHP-FPM/Apache 生效。需確認 MySQL 實際 Socket 檔位置 (SHOW VARIABLES LIKE 'socket';)。

方案三:驗證 MySQL 服務與綁定位址

  1. net start mysql 確認服務運行。
  2. 檢查 my.ini:bind-address = 127.0.0.1 (或 0.0.0.0),不可為 ::1 單獨 IPv6。
  3. telnet 127.0.0.1 3306 測試埠通達性。

快速驗證指令

mysql -u root -p -h 127.0.0.1  # 命令列強制 TCP 連線測試

結語

#2002 90% 以上由 localhost Socket 機制與實際 Socket 檔位置不符引起。改用 127.0.0.1 強制 TCP 連線是最穩健、跨平台一致的解法;若堅持 Socket,務必對齊 my.cnf、php.ini、config.inc.php 三處 Socket 路徑。

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