Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Membetulkan Ralat \"mysqlnd Tidak Dapat Menyambung ke MySQL 4.1 Menggunakan Pengesahan Legacy\"?

Bagaimana untuk Membetulkan Ralat \"mysqlnd Tidak Dapat Menyambung ke MySQL 4.1 Menggunakan Pengesahan Legacy\"?

Barbara Streisand
Barbara Streisandasal
2024-10-25 06:18:29401semak imbas

How to Fix

Ralat: mysqlnd Tidak Dapat Menyambung ke MySQL 4.1 Menggunakan Pengesahan Legacy

Apabila menggunakan skema PHP 5.3 dan MySQL 5.5, pembangun mungkin menghadapi perkara berikut ralat:

Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. 

Mesej ralat ini menandakan bahawa mysqlnd, pemacu asli MySQL, tidak dapat mewujudkan sambungan selamat disebabkan oleh mekanisme pengesahan lapuk yang digunakan dalam MySQL 4.1 atau versi terdahulu.

Menyelesaikan Isu

Untuk menyelesaikan isu ketersambungan ini, ikut langkah berikut:

  1. Alih Keluar atau Ulas Tetapan 'old_passwords' dalam saya .cnf:

    Ubah suai fail konfigurasi my.cnf dan cari baris yang mengandungi 'old_passwords = 1'. Alih keluar baris ini atau ulasnya dengan menambah aksara '#' pada permulaan.

  2. Mulakan semula MySQL:

    Mulakan semula perkhidmatan MySQL ke gunakan perubahan yang dibuat dalam my.cnf. Langkah ini memastikan MySQL menggunakan format kata laluan baharu. Jika dilangkau, MySQL akan terus menggunakan format yang tidak selamat.

  3. Kemas kini Kata Laluan Pengguna:

    Sambung ke pangkalan data dan laksanakan pertanyaan berikut untuk mengenal pasti pengguna dengan kata laluan lapuk:

    SELECT user, Length(`Password`) FROM  `mysql`.`user`;

    Pertanyaan ini akan memaparkan pengguna dengan cincang kata laluan lama (16 aksara) dan baharu (41 aksara).

  4. Laksanakan Kemas Kini Kata Laluan:

    Untuk pengguna dengan cincang kata laluan 16 aksara, kemas kini kata laluan mereka menggunakan arahan berikut:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username';

    Ganti 'nama pengguna' dengan nama pengguna dan 'kata laluan sebenar ' dengan kata laluan baharu yang dikehendaki.

  5. Keistimewaan Flush:

    Akhir sekali, laksanakan arahan berikut untuk menggunakan kata laluan yang dikemas kini:

    FLUSH PRIVILEGES;

Dengan melengkapkan langkah ini, anda boleh menyelesaikan isu sambungan yang disebabkan oleh pengesahan warisan dan mewujudkan sambungan selamat ke MySQL menggunakan mysqlnd.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat \"mysqlnd Tidak Dapat Menyambung ke MySQL 4.1 Menggunakan Pengesahan Legacy\"?. 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