PDO 連線錯誤:「沒有這樣的檔案或目錄(嘗試透過unix:///tmp/mysql.sock 連線)」
在這個問題中,使用者表達了對透過PDO 連接到資料庫的問題的擔憂,該問題之前一直在運行。用戶感到困惑,因為他們沒有更改與程式碼或資料庫相關的任何設置,並且不確定問題的根源。
使用者提供的 PHP 程式碼片段顯示他們正在嘗試建立 TCP/IP 連線使用主機名稱「localhost」連線到資料庫。但是,錯誤訊息表示嘗試透過 Unix 套接字進行連線。
解決方案:
由於 PHP,使用者無意中嘗試使用 Unix 套接字客戶端程式庫對「localhost」的預設處理。該庫將“localhost”解釋為套接字位置而不是 TCP 主機。
要解決此錯誤並建立到本地電腦的TCP/IP 連接,用戶應替換「127.0.0.1」作為主機名稱在他們的PHP 代碼中:
<code class="php">new PDO('mysql:host=127.0.0.1;port=3306;dbname=test', 'username', 'password');</code>
如果打算使用Unix 套接字,使用者可以使用「unix_socket」DSN 選項而不是「host」明確指定其在DSN 中的位置。用於 localhost 的 Unix 套接字的位置可以在編譯時配置,或者在某些 PHP 版本中,透過修改 php.ini 檔案中的「pdo_mysql.default_socket」設定來配置。
以上是使用'localhost”時,為什麼我的 PDO 連線失敗並顯示'沒有這樣的檔案或目錄(嘗試透過 unix:///tmp/mysql.sock 連線)”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!