Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membetulkan Ralat \'mysqlnd tidak dapat menyambung ke MySQL 4.1 menggunakan pengesahan lama\'?

Bagaimana untuk Membetulkan Ralat \'mysqlnd tidak dapat menyambung ke MySQL 4.1 menggunakan pengesahan lama\'?

Patricia Arquette
Patricia Arquetteasal
2024-11-04 06:25:02960semak imbas

How to Fix

Ralat Ketersambungan MySQL dengan Pengesahan Lama

Menemui mesej ralat "mysqlnd tidak boleh menyambung ke MySQL 4.1 menggunakan pengesahan lama" menandakan isu keserasian apabila cuba menyambung ke pangkalan data MySQL yang menggunakan skema kata laluan yang sudah lapuk. Untuk menyelesaikan masalah ini, adalah penting untuk menentukan sama ada pelayan pangkalan data dikonfigurasikan untuk menggunakan skema kata laluan lama.

Menyemak Konfigurasi Pelayan

Laksanakan pertanyaan SQL berikut:

<code class="sql">SHOW VARIABLES LIKE 'old_passwords'</code>

Memahami Keputusan

  • Jika hasilnya old_passwords,Mati, pelayan dikonfigurasikan untuk menggunakan rutin pengesahan baharu. Kata laluan pengguna mungkin disimpan dalam format lama, tetapi pelayan akan menggunakan rutin baharu untuk pengesahan.
  • Jika hasilnya old_passwords,Hidup, pelayan dikonfigurasikan untuk menggunakan rutin pengesahan lama secara lalai. Dalam kes ini, skema kata laluan lama digunakan untuk pengesahan.

Penyelesaian Masalah dan Penyelesaian

Untuk menyelesaikan isu, ikut langkah berikut:

  1. Semak Format Kata Laluan Pengguna: Sahkan panjang kata laluan pengguna dalam jadual mysql.user. Panjang 16 aksara menunjukkan kata laluan lama, manakala panjang 41 aksara menandakan kata laluan baharu.
  2. Tetapkan Kata Laluan Baharu (jika perlu): Jika kata laluan pengguna berada dalam kata laluan lama format, tetapkan kata laluan baharu menggunakan arahan berikut:
<code class="sql">SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');</code>
  1. Keistimewaan Flush: Kemas kini keistimewaan pangkalan data dengan melaksanakan:
<code class="sql">FLUSH Privileges;</code>
  1. Sahkan Semula Panjang Kata Laluan: Semak panjang kata laluan pengguna sekali lagi dalam jadual mysql.user. Ia kini sepatutnya menjadi 41 aksara, menunjukkan bahawa format kata laluan baharu sedang digunakan.
  2. Buat Semula Sambungan: Selepas melengkapkan langkah ini, cuba sambung semula ke pangkalan data dengan pelanggan anda (cth., mysqlnd) . Sambungan sepatutnya berjaya.

Sumber Tambahan

Untuk maklumat lanjut, rujuk dokumentasi MySQL berikut:

  • http: //dev.mysql.com/doc/refman/5.0/en/old-client.html
  • http://dev.mysql.com/doc/refman/5.0/en/password-hashing.html
  • http://dev.mysql.com/doc/refman/5.0/ms/set-password.html

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \'mysqlnd tidak dapat menyambung ke MySQL 4.1 menggunakan pengesahan lama\'?. 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