首頁  >  文章  >  資料庫  >  使用“localhost”時,為什麼我的 PDO 連線失敗並顯示“沒有這樣的檔案或目錄(嘗試透過 unix:///tmp/mysql.sock 連線)”?

使用“localhost”時,為什麼我的 PDO 連線失敗並顯示“沒有這樣的檔案或目錄(嘗試透過 unix:///tmp/mysql.sock 連線)”?

DDD
DDD原創
2024-11-03 07:38:30946瀏覽

Why Does My PDO Connection Fail With

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn