Rumah > pangkalan data > tutorial mysql > Mengapa Saya Mendapat 'Akses dinafikan untuk pengguna 'root'@'localhost'' dalam MySQL dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Saya Mendapat 'Akses dinafikan untuk pengguna 'root'@'localhost'' dalam MySQL dan Bagaimana Saya Boleh Membetulkannya?

DDD
Lepaskan: 2024-12-15 09:28:13
asal
323 orang telah melayarinya

Why Am I Getting

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:

  1. 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."
  2. 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.
  3. Jalankan "FLUSH PRIVILEGES;" arahan untuk memastikan perubahan berkuat kuasa.
  4. 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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan