Akses Ditolak untuk Pengguna 'root'@'localhost' - Tiada Keistimewaan: Pemulihan Akses Root
Isu ini timbul kerana kekurangan keistimewaan untuk pengguna root dalam MySQL. Keistimewaan skema akar adalah penting untuk melaksanakan tugas pentadbiran dan memberikan keistimewaan kepada pengguna lain.
Punca:
- Keistimewaan telah dibatalkan atau diubah suai secara tidak sengaja.
- Kaedah pengesahan untuk pengguna root telah ditukar kepada sambungan soket dalam MySQL 5.7 dan ke atas.
Penyelesaian:
Untuk MySQL 5.6 dan ke bawah:
- Mulakan MySQL dengan bendera akar -u untuk mendapatkan akses root tanpa kata laluan.
- Jalankan GRANT ALL KEISTIMEWAAN PADA *.* UNTUK 'root'@'localhost' untuk memberikan semua keistimewaan kepada pengguna root.
- Keistimewaan flush menggunakan FLUSH PRIVILEGES.
Untuk MySQL 5.7 dan di atas:
- Semak sama ada pemalam pengesahan untuk pengguna root ditetapkan kepada auth_socket. Jika ya, kemas kini kepada mysql_native_password menggunakan ALTER USER 'root'@'localhost' DIKENALPASTI DENGAN mysql_native_password OLEH 'Current-Root-Password'.
- Keistimewaan Flush.
- Gunakan TETAPKAN KATA LALUAN UNTUK 'root'@'localhost' = PASSWORD('manager').
- Keistimewaan flush.
Lain-lain Petua:
- Jika ralat berterusan, semak sebarang kekangan keselamatan atau isu konfigurasi lain.
- Gunakan arahan SHOW GRANTS untuk mengesahkan keistimewaan yang diberikan kepada pengguna root.
- Menetapkan semula kata laluan akar menggunakan skrip pemasangan mariadb-secure-boleh menyelesaikan masalah isu.
Atas ialah kandungan terperinci Bagaimana Saya Boleh Memulihkan Akses Root dalam MySQL Apabila Akses Dinafikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!