Rumah > pangkalan data > tutorial mysql > Mengapa Sambungan PDO Saya Gagal Dengan \'Tiada fail atau direktori sedemikian (cuba menyambung melalui unix:///tmp/mysql.sock)\' Apabila Menggunakan \'localhost\'?

Mengapa Sambungan PDO Saya Gagal Dengan \'Tiada fail atau direktori sedemikian (cuba menyambung melalui unix:///tmp/mysql.sock)\' Apabila Menggunakan \'localhost\'?

DDD
Lepaskan: 2024-11-03 07:38:30
asal
981 orang telah melayarinya

Why Does My PDO Connection Fail With

Ralat Sambungan PDO: "Tiada fail atau direktori sedemikian (cuba menyambung melalui unix:///tmp/mysql.sock)"

Dalam soalan ini, pengguna menyatakan kebimbangan mengenai isu menyambung ke pangkalan data melalui PDO, yang berfungsi sebelum ini. Pengguna bingung kerana mereka tidak mengubah sebarang tetapan yang berkaitan dengan kod atau pangkalan data dan tidak pasti punca masalah.

Coretan kod PHP yang disediakan pengguna mencadangkan mereka cuba mewujudkan sambungan TCP/IP ke pangkalan data menggunakan nama hos "localhost." Walau bagaimanapun, mesej ralat menunjukkan percubaan untuk menyambung melalui soket Unix sebaliknya.

Penyelesaian:

Pengguna secara tidak sengaja cuba menggunakan soket Unix disebabkan PHP pengendalian lalai perpustakaan pelanggan "localhost." Pustaka ini mentafsirkan "localhost" sebagai lokasi soket dan bukannya hos TCP.

Untuk menyelesaikan ralat ini dan mewujudkan sambungan TCP/IP ke mesin setempat, pengguna harus menggantikan "127.0.0.1" sebagai nama hos dalam kod PHP mereka:

<code class="php">new PDO('mysql:host=127.0.0.1;port=3306;dbname=test', 'username', 'password');</code>
Salin selepas log masuk

Jika niatnya adalah untuk menggunakan soket Unix, pengguna boleh menentukan lokasinya secara eksplisit dalam DSN menggunakan pilihan DSN "unix_socket" dan bukannya "host." Lokasi soket Unix yang digunakan untuk localhost boleh dikonfigurasikan pada masa penyusunan atau, dalam versi PHP tertentu, dengan mengubah suai tetapan "pdo_mysql.default_socket" dalam fail php.ini.

Atas ialah kandungan terperinci Mengapa Sambungan PDO Saya Gagal Dengan \'Tiada fail atau direktori sedemikian (cuba menyambung melalui unix:///tmp/mysql.sock)\' Apabila Menggunakan \'localhost\'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan