Akses Ditolak untuk Pengguna 'root'@'localhost' Kerana Hilang Keistimewaan
Isu:
Pengguna yang cuba mengakses MySQL apabila pengguna akar menemui "Akses ditolak untuk ralat 'root'@'localhost' pengguna (menggunakan kata laluan: YES)", menunjukkan bahawa pengguna root tidak mempunyai keistimewaan yang diperlukan untuk mewujudkan sambungan.
Penjelasan:
Secara lalai, MySQL 5.7 dan lebih tinggi bergantung terutamanya pada pengesahan soket untuk sambungan tempatan. Ini bermakna bahawa percubaan untuk menyambung melalui baris arahan sebagai "sudo mysql" tidak memerlukan kata laluan. Walau bagaimanapun, kaedah pengesahan ini tidak memberikan pengguna root sebarang keistimewaan khusus.
Penyelesaian:
Untuk mewujudkan sambungan berasaskan kata laluan dan memberikan keistimewaan pengguna root:
- Jalankan "SELECT user, authentication_string, plugin, host FROM mysql.user;" pertanyaan untuk menyemak konfigurasi pengguna semasa. Sahkan bahawa pemalam pengesahan untuk pengguna root ialah "auth_socket."
- Laksanakan "ALTER USER 'root'@'localhost' DIKENALPASTI DENGAN mysql_native_password OLEH 'Current-Root-Password';" pernyataan untuk mengubah suai kaedah pengesahan pengguna root daripada soket kepada asli.
- Jalankan "FLUSH PRIVILEGES;" arahan untuk memastikan perubahan berkuat kuasa.
- Ulang langkah 1 untuk mengesahkan bahawa pemalam pengesahan pengguna root telah ditukar kepada "mysql_native_password."
Pertimbangan Tambahan:
- The "Current-Root-Password" hendaklah digantikan dengan kata laluan pengguna root sedia ada.
- Untuk versi MySQL sebelum 5.7, kaedah pengesahan mungkin "caching_sha2_password." Dalam kes ini, gunakan "ALTER USER 'root'@'localhost' DIDIFIED WITH caching_sha2_password OLEH 'Current-Root-Password';" kenyataan sebaliknya.
- Untuk pengguna MariaDB, arahan berikut boleh digunakan untuk menetapkan kata laluan untuk pengguna root: "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('manager');"
Atas ialah kandungan terperinci Mengapa Saya Mendapat 'Akses dinafikan untuk pengguna 'root'@'localhost'' dalam MySQL dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!