Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat Ralat 'Akses Ditolak' Semasa Memberi Keistimewaan MySQL Walaupun Mempunyai Keizinan yang Diperlukan?

Mengapa Saya Mendapat Ralat 'Akses Ditolak' Semasa Memberi Keistimewaan MySQL Walaupun Mempunyai Keizinan yang Diperlukan?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 00:49:15508semak imbas

Why Do I Get

Memberi Keistimewaan tanpa Akses Ralat Ditolak

Apabila cuba memberikan keistimewaan, pengguna MySQL mungkin menghadapi ralat "Akses ditolak untuk 'root' pengguna @'localhost' (menggunakan kata laluan: YA)." Ini boleh membingungkan, kerana ia mungkin kelihatan seperti pengguna mempunyai kebenaran yang diperlukan.

Mengesahkan Keistimewaan

Untuk mengesahkan bahawa pengguna mempunyai keistimewaan yang sesuai, jalankan arahan berikut :

SELECT user();
SELECT current_user();
SHOW GRANTS FOR 'root'@'localhost';
SELECT * FROM mysql.user WHERE User='root';

Arahan ini harus mengesahkan bahawa pengguna sememangnya root@localhost dan mempunyai yang diperlukan kebenaran, termasuk:

  • PILIH, MASUKKAN, KEMASKINI, PADAM, BUAT, LEPASKAN, MUAT SEMULA, TUTUP, PROSES, FAIL, RUJUKAN, INDEX, UBAH, Tunjukkan PANGKALAN DATA, SUPER
  • Create dan memanipulasi jadual, pandangan, dan rutin
  • Berikan keistimewaan kepada pengguna lain

Isu: Memberi Keistimewaan pada Jadual Tertentu

Walaupun mempunyai kebenaran ini, ralat mungkin berlaku apabila cuba memberikan keistimewaan pada tertentu jadual:

GRANT ALL PRIVILEGES ON *.* TO 'steves'@'[hostname].com' IDENTIFIED BY '[OBSCURED]' WITH GRANT OPTION;

Ini kerana jadual mysql.users dianggap luar had untuk semua pengguna kecuali root.

Penyelesaian: Pemberian Keistimewaan pada Semua Pangkalan Data

Untuk mengatasinya, gunakan arahan berikut, yang memberikan keistimewaan pada semua pangkalan data kecuali mysql.users:

GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;

Menggunakan %. bukannya .* memastikan semua pangkalan data disertakan kecuali jadual mysql.users. Ini sepatutnya berjaya memberikan keistimewaan tanpa mencetuskan ralat dinafikan akses.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'Akses Ditolak' Semasa Memberi Keistimewaan MySQL Walaupun Mempunyai Keizinan yang Diperlukan?. 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