Sambungan PHP gagal: Sambungan SQLSTATE ditolak
P粉068510991
2023-08-23 18:49:26
<p>Saya cuba menyambung ke pangkalan data MySQL pada phpmyadmin menggunakan sambungan PHP. Tiada apa-apa yang istimewa tentang sambungan, hanya ingin melihat sama ada sambungan itu berjaya. Saya menggunakan MAMP untuk mengehoskan pangkalan data dan sambungan yang saya cuba gunakan ialah ini: </p>
<pre class="brush:php;toolbar:false;"><?php
$nama pelayan = "127.0.0.1";
$nama pengguna = "root";
$kata laluan = "root";
cuba {
$conn = new PDO("mysql:host=$servername;dbname=AppDatabase", $username, $password);
// tetapkan mod ralat PDO kepada pengecualian
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Berjaya disambungkan";
}
tangkap(PDOException $e)
{
echo "Sambungan gagal: " $e->getMessage();
}
?></pra>
<p>Saya telah menggunakan Posmen untuk menguji bahawa sambungan berfungsi, tetapi saya terus mendapat mesej ralat ini: </p>
<blockquote>
<p>Sambungan gagal: SQLSTATE[HY000] [2002] Sambungan ditolak</p>
</blockquote>
<p>Sebelum saya menerima mesej ralat berikut: </p>
<blockquote>
<p>Sambungan gagal: SQLSTATE[HY000] [2002] Tiada fail atau direktori sedemikian</p>
</blockquote>
<p>Ini kerana saya menetapkan nama pelayan kepada localhost dan dengan menukarnya kepada alamat IP ia menyebabkan sambungan ditolak dan saya tidak tahu apa yang berlaku. </p>
<p>Sebarang bantuan berkaitan isu ini amat dihargai. </p>
Saya sedang berhijrah di
docker
环境中度过了相当多的时间,其中我的所有容器都是docker
容器,并且我使用Phinx
. Hanya untuk berkongsi respons yang berbeza untuk konfigurasi yang berbeza.Penyelesaian Bekerja
Penyelesaian tidak sah
Saya menjalankannya seperti berikut
Phinx
.Saya dapati sebab sambungan tidak berfungsi, ini kerana sambungan cuba disambungkan ke port 8888 apabila ia perlu disambungkan ke port 8889.
Ini menyelesaikan masalah, walaupun menukar nama pelayan kepada localhost masih memberi saya ralat.
Sambungan gagal: SQLSTATE[HY000] [2002] Tiada fail atau direktori sedemikian
Tetapi apabila memasukkan alamat IP sebagai nama pelayan, ia berjaya menyambung.