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

MySQL 服務正常但 PHP 無法連接:localhost 與 127.0.0.1 的差異排查

     編輯:MySQL 資料庫相關知識

錯誤現象

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource ...
Error: Can not connect to MySQL Server

解決方案

將連線主機從 host=localhost 改為 host=127.0.0.1 即可連線成功。

根本原因分析

  • localhost:MySQL 客戶端庫會嘗試使用 Unix 域套接字(Socket 文件,如 /tmp/mysql.sock)連線。若 Socket 文件路徑配置不一致、權限不足、或 MySQL 啟用了 skip-networking,連線會失敗。
  • 127.0.0.1:強制使用 TCP/IP 回環介面連線,繞過 Socket 機制,只要埠號(預設 3306)開放且防火牆允許即可成功。

排查建議

  1. 檢查 my.cnf 中 [client] 和 [mysqld] 的 socket 路徑是否一致。
  2. 確認 MySQL 進程確實監聽 3306 埠:netstat -an | grep 3306。
  3. 若必須用 localhost,可在 PHP 設定 mysqli.default_socket 或連線時指定 unix_socket 參數。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved