PHP 連線失敗:SQLSTATE 連線被拒絕
P粉068510991
2023-08-23 18:49:26
<p>我正在嘗試使用 PHP 連線來連接 phpmyadmin 上的 MySQL 資料庫。連結沒什麼特別的,只是想看看連線是否成功。我正在使用 MAMP 託管資料庫,我嘗試使用的連接是這樣的: </p>
<pre class="brush:php;toolbar:false;"><?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";
try {
$conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?></pre>
<p>我一直在使用郵遞員來測試連線是否正常運作,但我不斷收到此錯誤訊息:</p>
<blockquote>
<p>連線失敗:SQLSTATE[HY000] [2002] 連線被拒絕</p>
</blockquote>
<p>在我收到以下錯誤訊息之前:</p>
<blockquote>
<p>連線失敗:SQLSTATE[HY000] [2002] 沒有這樣的檔案或目錄</p>
</blockquote>
<p>這是因為我將伺服器名稱設為 localhost,透過將其更改為 IP 位址,它導致連線被拒絕,我不知道出了什麼問題。 </p>
<p>任何有關此問題的幫助將不勝感激。 </p>
我在
docker
環境中度過了相當多的時間,其中我的所有容器都是docker
容器,並且我使用Phinx
進行遷移。只是為了分享不同配置的不同回應。工作解決方案
#無效的解決方案
#我按照以下方式運行
Phinx
。我找到了連接不起作用的原因,這是因為連接試圖連接到連接埠8888,而它需要連接到連接埠8889。
這解決了問題,儘管將伺服器名稱更改為 localhost 仍然會出現錯誤。
連線失敗:SQLSTATE[HY000] [2002] 沒有這樣的檔案或目錄
但是當輸入IP位址作為伺服器名稱時,它會成功連接。