Rumah > pembangunan bahagian belakang > tutorial php > Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya Melalui Soket, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya Melalui Soket, dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-11-30 20:32:12
asal
726 orang telah melayarinya

Why Can't I Connect to My Local MySQL Server Through the Socket, and How Can I Fix It?

Menyelesaikan masalah "Tidak Dapat Menyambung ke Pelayan MySQL Tempatan Melalui Soket" Ralat

Ralat "Tidak dapat menyambung ke pelayan MySQL tempatan melalui soket 'MySQL' (2)" timbul apabila cuba menyambung ke pangkalan data MySQL menggunakan kelas PHP MySQLi. Ralat ini menunjukkan bahawa soket domain Unix, bukannya sambungan TCP/IP, sedang dicuba.

Memahami Soket Domain Unix untuk Sambungan MySQL

Apabila menyatakan "localhost " sebagai hos, perpustakaan klien MySQL lalai menggunakan soket domain Unix untuk sambungan. Tidak seperti sambungan TCP/IP, soket domain Unix memanfaatkan fail soket dalam sistem pengendalian untuk mewujudkan komunikasi dengan MySQL.

Menyelesaikan Isu Sambungan

Terdapat beberapa pendekatan untuk selesaikan isu sambungan ini:

1. Tentukan Sambungan TCP/IP:

Untuk menguatkuasakan sambungan TCP/IP dan bukannya soket domain Unix, gunakan "127.0.0.1" sebagai hos semasa menyambung. Ini memastikan sambungan TCP/IP walaupun semasa menggunakan "localhost".

2. Konfigurasikan Soket Domain Unix:

Jika lebih suka menggunakan soket domain Unix, cari laluan soket dalam fail konfigurasi MySQL "my.cnf" dan tetapkan "mysqli.default_socket" PHP ke laluan itu.

3. Konfigurasikan Soket dalam Skrip PHP secara eksplisit:

Anda juga boleh mengkonfigurasi soket secara langsung dalam skrip PHP apabila membuka sambungan. Contohnya:

$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
Salin selepas log masuk

Memilih Kaedah Sambungan

Kaedah sambungan optimum bergantung pada persekitaran tertentu. Soket domain Unix boleh menjadi lebih pantas dan lebih selamat, tetapi ia memerlukan laluan soket untuk dikonfigurasikan. Sambungan TCP/IP, sebaliknya, tidak memerlukan konfigurasi khas tetapi mungkin lebih perlahan.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya Melalui Soket, dan Bagaimana Saya Boleh Membetulkannya?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan