揭示連線困境:了解MySQL 套接字連線
在嘗試使用PHP 的mysqli 類別建立MySQL 資料庫連線時,您可能會遇到錯誤:「[無法透過套接字'MySQL' (2) 連接到本機MySQL 伺服器]」。當 MySQL 用戶端嘗試透過「localhost」上的 Unix 網域套接字而不是 TCP/IP 連線進行連線時,會發生此錯誤。
Unix 套接字與TCP/IP 連接
預設情況下,Unix 系統上的MySQL 程式在連接到「localhost」時更傾向於使用Unix 域套接字而不是TCP/IP 連線。但是,如果套接字不可用或您特別需要 TCP/IP 連接,則必須採用不同的方法。
解決問題
幾個解可以解決此問題問題:
1。明確 TCP/IP 連線:
在連線字串中使用 IP 位址「127.0.0.1」或本機伺服器的主機名,而不是「localhost」。這會強制客戶端建立 TCP/IP 連線。
2.修改PHP設定:
找到MySQL設定檔(my.cnf),找出MySQL建立套接字的路徑。在 php.ini 中將 PHP 的 mysqli.default_socket 設定為該路徑。
3.明確套接字配置:
在 PHP腳本中開啟連線時直接指定套接字路徑:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
結論
By了解MySQL使用的連線機制,您可以克服這個錯誤並建立成功的資料庫連線。請記住,使用 Unix 網域套接字可能會提供效能和安全性優勢,但在某些情況下可能需要明確 TCP/IP 連線。
以上是為什麼無法透過Socket連接本地MySQL伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!