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
Lepaskan: 2024-12-16 07:57:16
asal
823 orang telah melayarinya

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
Salin selepas log masuk
  1. Konfigurasi Soket Terus:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                              '/var/run/mysqld/mysqld.sock')
Salin selepas log masuk

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!

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