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
Patricia Arquetteasal
2024-11-30 20:32:12727semak imbas

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');

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!

Kenyataan:
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