Rumah >pangkalan data >tutorial mysql >Mengapa Saya Mendapat \'Akses dinafikan untuk pengguna \'nama pengguna\'@\'localhost\'\' dalam MySQL?

Mengapa Saya Mendapat \'Akses dinafikan untuk pengguna \'nama pengguna\'@\'localhost\'\' dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-01 16:02:14415semak imbas

Why Am I Getting

Akses Ditolak untuk Pengguna 'Nama Pengguna'@'localhost'

Mesej ralat "SQLSTATE[HY000] [1045] Akses ditolak untuk 'nama pengguna'@'localhost pengguna '" menunjukkan bahawa pengguna yang ditentukan tidak mempunyai akses kepada pangkalan data. Ini boleh berlaku kerana pengguna tidak wujud, kata laluan tidak betul atau pengguna tidak mempunyai keistimewaan yang diperlukan.

Mengesahkan Kewujudan Pengguna

Untuk menyemak sama ada pengguna wujud, laksanakan perkara berikut pertanyaan:

SELECT user, host FROM mysql.user

Cari baris dengan nama pengguna dan nama hos yang ditentukan, menunjukkan bahawa pengguna wujud.

Pengesahan Kata Laluan

Jika pengguna wujud, sahkan bahawa kata laluan itu betul dengan mengemas kininya:

SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password')

Memberi Keistimewaan

Pengguna mungkin mempunyai keistimewaan yang tidak mencukupi untuk mengakses pangkalan data. Berikan keistimewaan yang diperlukan dengan arahan seperti:

GRANT SELECT ON database_name.* TO 'username'@'localhost'

Tembok Api dan Konfigurasi Port

Jika langkah di atas tidak menyelesaikan isu, semak tetapan tembok api untuk memastikan port pangkalan data (biasanya 3306) dibuka. Selain itu, sahkan nama hos pengguna dalam fail konfigurasi app.php. Nama hos hendaklah sepadan dengan lajur hos pengguna dalam jadual mysql.user.

Wildcard Host

Jika hos pengguna ditetapkan kepada %, ia sepadan dengan mana-mana hos. Ini boleh menyebabkan masalah jika nama hos dalam konfigurasi app.php tidak sepadan dengan nama hos pengguna. Tukar hos pengguna kepada localhost secara eksplisit.

Keistimewaan Menyegarkan

Perubahan yang dibuat pada jadual keistimewaan MySQL memerlukan pernyataan FLUSH PRIVILEGES untuk berkuat kuasa, dilaksanakan oleh pengguna istimewa:

FLUSH PRIVILEGES

Atas ialah kandungan terperinci Mengapa Saya Mendapat \'Akses dinafikan untuk pengguna \'nama pengguna\'@\'localhost\'\' dalam MySQL?. 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