MySQL ERROR 1045 (28000): Akses Ditolak untuk 'bil' Pengguna
Apabila cuba menyambung ke MySQL menggunakan 'bil' pengguna dengan kata laluan yang betul, mesej ralat "ERROR 1045 (28000): Akses ditolak untuk pengguna 'bill'@'localhost' (menggunakan kata laluan: YES)" muncul. Ralat ini ditemui walaupun 'bil' pengguna telah dibuat, diberikan semua keistimewaan dan dinyatakan dengan hos '%'.
Punca Masalah
Isu ini timbul daripada kemungkinan wujudnya pengguna tanpa nama dengan nama pengguna kosong dan hos ditetapkan kepada 'localhost' atau '127.0.0.1' dalam pengguna MySQL jadual.
Cara MySQL Menyelesaikan Pengesahan Pengguna
Apabila pelanggan cuba menyambung, MySQL menyemak jadual pengguna dan memilih baris pertama yang sepadan dengan nama hos dan pengguna pelanggan nama. Pemilihan diisih dengan nilai Hos yang paling spesifik dahulu, memberikan keutamaan nama hos literal dan alamat IP.
Dalam kes ini, pengguna tanpa nama dengan 'localhost' sebagai hosnya sepadan dengan percubaan sambungan lebih baik daripada pengguna ' bill'@'%', menyekat akses kepada 'bil'.
Disyorkan Penyelesaian
Penyelesaian yang disyorkan ialah menggugurkan pengguna tanpa nama, kerana ia boleh mewujudkan kelemahan keselamatan. Untuk berbuat demikian, laksanakan arahan berikut:
DROP USER ''@'localhost';
Pertimbangan Tambahan
Atas ialah kandungan terperinci Mengapa MySQL Mengembalikan 'Akses Ditolak' Walaupun Dengan Kelayakan Yang Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!