Rumah >pangkalan data >tutorial mysql >Mengapa Saya Tidak Boleh Menyambung ke MySQL melalui Soket Unix?

Mengapa Saya Tidak Boleh Menyambung ke MySQL melalui Soket Unix?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 07:57:16825semak imbas

Why Can't I Connect to MySQL via Unix Socket?

Tidak Dapat Menyambung ke MySQL melalui Unix Socket: Tidak Dapat Menyambung ke MySQL melalui Soket 'MySQL' (2)

Apabila menyambung ke MySQL menggunakan kelas mysqli PHP dan menyatakan "localhost" sebagai hos, anda menghadapi mesej ralat "Tidak dapat menyambung ke pelayan MySQL tempatan melalui soket 'MySQL' (2)." Ini menunjukkan isu dengan soket Unix yang digunakan untuk sambungan tempatan.

Memahami Sambungan Localhost

Secara lalai, perpustakaan klien MySQL menggunakan soket domain Unix untuk menyambung ke pelayan MySQL tempatan apabila hos ditentukan sebagai "host tempatan." Walau bagaimanapun, jika soket tidak boleh diakses atau tidak wujud, anda akan menghadapi ralat ini.

Pilihan Penyelesaian Masalah

Untuk menyelesaikan isu ini, anda mempunyai beberapa pilihan:

  1. Gunakan Alamat IP Sebaliknya (TCP/IP): Tukar hos kepada 127.0.0.1 atau alamat IP sebenar pelayan tempatan. Ini memaksa sambungan untuk menggunakan soket TCP/IP dan bukannya soket Unix.
  2. Ubah suai my.cnf (Tetapan Soket PHP): Dalam fail konfigurasi MySQL (my.cnf), cari lokasi di mana MySQL mencipta soket dan tetapkan mysqli.default_socket dalam php.ini PHP kepada itu laluan.
mysqli.default_socket = /var/run/mysqld/mysqld.sock
  1. Konfigurasi Soket Terus:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                              '/var/run/mysqld/mysqld.sock')

Dengan menyatakan soket secara langsung, anda mengatasi lalai Konfigurasi soket Unix.

Dalam kes anda, kerana anda hanya boleh menyambung melalui 127.0.0.1, menggunakan Pilihan 1 adalah disyorkan. Jika anda perlu membenarkan sambungan tapak web luaran, anda harus mencipta pengguna baharu dengan keistimewaan yang sesuai dan menggunakan TCP/IP (Pilihan 1) untuk sambungan jauh.

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