Membetulkan Ralat Sambungan MySQL Akibat Pengesahan Tidak Selamat
Apabila cuba mewujudkan sambungan pangkalan data, anda mungkin menghadapi ralat berikut:
Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
Salin selepas log masuk
Isu ini berlaku disebabkan oleh ketidakpadanan antara versi PHP dan MySQL. MySQL telah mempertingkatkan langkah keselamatannya, memerlukan penggunaan kaedah pengesahan yang lebih selamat.
Penyelesaian:
-
Kemas kini Konfigurasi Pelayan:
- Pada pelayan pengehosan web anda (kuil media), berunding dengan hos anda untuk mengemas kini versi MySQL kepada 5.5.16 atau lebih baru (padan dengan versi pada mesin tempatan anda).
-
Lumpuhkan Pengesahan Tidak Selamat:
- Cari fail konfigurasi "my.cnf" (cth., "/etc/my.cnf" atau "/opt/lampp/etc/my.cnf").
- Alih keluar atau ulas baris "old_passwords = 1".
-
Mulakan semula MySQL:
- Untuk menggunakan perubahan, mulakan semula perkhidmatan MySQL.
-
Tetapkan Semula Kata Laluan:
- Sambung ke pangkalan data MySQL menggunakan alat pentadbiran (cth., MySQL Workbench atau phpMyAdmin).
- Jalankan pertanyaan "SELECT user, Length(Password) FROM mysql.user;" untuk mengenal pasti pengguna dengan kata laluan tidak selamat (cincang 16 aksara).
- Kemas kini kata laluan untuk setiap pengguna dengan pengesahan tidak selamat menggunakan pertanyaan "KEMASKINI mysql.user SET Kata Laluan = PASSWORD('password') WHERE user = 'username ';".
-
Keistimewaan Flush:
- Laksanakan pertanyaan "FLUSH PRIVILEGES;" untuk menyebarkan perubahan kata laluan.
Pertimbangan Tambahan:
- Jika anda menggunakan PHP 5.2 atau lebih awal pada sebelah pelayan, anda mungkin perlu mengalih keluar bendera "kata laluan lama" daripada fail "my.cnf" untuk membenarkan kaedah pengesahan lapuk.
- Pastikan kata laluan pengguna root MySQL selamat, seperti yang dinyatakan dalam ralat mesej.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan untuk tajuk artikel, berdasarkan kandungan anda, diformatkan sebagai soalan:
**Umum & Fokus pada Mesej Ralat:**
* **Cara Membaiki \'mysqlnd tidak dapat menyambung ke MySQL 4.1 usin. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!