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
Lepaskan: 2024-12-01 16:02:14
asal
353 orang telah melayarinya

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
Salin selepas log masuk

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')
Salin selepas log masuk

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'
Salin selepas log masuk

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
Salin selepas log masuk

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!

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