Rumah > pangkalan data > tutorial mysql > Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya Melalui Soket?

Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya Melalui Soket?

Linda Hamilton
Lepaskan: 2024-12-10 20:33:17
asal
1081 orang telah melayarinya

Why Can't I Connect to My Local MySQL Server Through the Socket?

Menyingkap Masalah Sambungan: Memahami Sambungan Soket MySQL

Dalam percubaan untuk mewujudkan sambungan pangkalan data MySQL menggunakan kelas mysqli PHP, anda mungkin menghadapi ralat: "[Tidak boleh menyambung ke pelayan MySQL tempatan melalui soket 'MySQL' (2)]". Ralat ini timbul apabila klien MySQL cuba menyambung melalui soket domain Unix pada "localhost" dan bukannya sambungan TCP/IP.

Sambungan Unix vs. TCP/IP

Secara lalai, program MySQL pada sistem Unix mengutamakan soket domain Unix berbanding sambungan TCP/IP apabila menyambung ke "localhost". Walau bagaimanapun, jika soket tidak tersedia atau anda secara khusus memerlukan sambungan TCP/IP, kaedah yang berbeza mesti digunakan.

Menyelesaikan Isu

Beberapa penyelesaian boleh menangani perkara ini isu:

1. Sambungan TCP/IP Eksplisit:

Gunakan alamat IP "127.0.0.1" atau nama hos pelayan tempatan dan bukannya "localhost" dalam rentetan sambungan anda. Ini memaksa pelanggan untuk mewujudkan sambungan TCP/IP.

2. Mengubah suai Konfigurasi PHP:

Cari fail konfigurasi MySQL (my.cnf) dan cari laluan di mana MySQL menubuhkan soket. Tetapkan mysqli.default_socket PHP kepada laluan ini dalam php.ini.

3. Konfigurasi Soket Eksplisit:

Nyatakan laluan soket secara langsung apabila membuka sambungan dalam skrip PHP:

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

Kesimpulan

Oleh memahami mekanisme sambungan yang digunakan oleh MySQL, anda boleh mengatasi ralat ini dan mewujudkan sambungan pangkalan data yang berjaya. Ingat bahawa menggunakan soket domain Unix mungkin menawarkan kelebihan prestasi dan keselamatan, tetapi sambungan TCP/IP yang jelas mungkin diperlukan dalam keadaan tertentu.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menyambung ke Pelayan MySQL Tempatan Saya Melalui Soket?. 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