SQLSTATE[HY000] [1045] Akses Ditolak untuk 'nama pengguna'@'localhost' Pengguna
Isu:
Apabila menyambung ke pangkalan data menggunakan PHP dan CakePHP, pengguna mungkin menghadapi mesej ralat berikut: "SQLSTATE[HY000] [1045] Akses ditolak untuk 'nama pengguna'@'localhost' pengguna (menggunakan kata laluan: YES)."
Penjelasan:
Ralat ini menunjukkan bahawa nama pengguna, 'nama pengguna' dan hos yang disediakan, 'localhost', tidak dibenarkan untuk mengakses pangkalan data. Dalam MySQL, setiap pengguna dikenal pasti melalui nama pengguna dan hos.
Punca Kemungkinan:
-
Kata laluan salah: Kata laluan yang disediakan kata laluan tidak sepadan dengan kata laluan yang disimpan untuk pengguna.
-
Tidak wujud pengguna: Pengguna dengan nama pengguna dan hos yang diberikan tidak wujud dalam pangkalan data.
-
Hos kad liar: Pengguna wujud, tetapi hos ditetapkan kepada nilai kad liar seperti % , yang mungkin tidak sepadan dengan hos yang digunakan untuk sambungan.
-
Keistimewaan yang tidak mencukupi: Pengguna belum diberikan keistimewaan untuk mengakses pangkalan data atau jadual tertentu di dalamnya.
Penyelesaian:
Untuk menyelesaikan isu ini, ikuti langkah berikut:
-
Sahkan kewujudan pengguna: Gunakan pertanyaan MySQL "PILIH pengguna, hos DARI mysql.user;" untuk menyemak sama ada pengguna wujud dengan nama pengguna dan hos yang diberikan.
-
Tetapkan semula kata laluan: Jika pengguna wujud, tetapkan semula kata laluan untuk pengguna 'test2'@'localhost' menggunakan "SET KATA LALUAN".
-
Semak hos kad bebas: Jika pengguna tidak wujud, ciptakannya dengan yang betul hos.
-
Berikan keistimewaan: Pastikan pengguna mempunyai keistimewaan yang diperlukan untuk mengakses pangkalan data dan jadual.
-
Keistimewaan flush: Selepas mengubah suai jadual keistimewaan, laksanakan "FLUSH PRIVILEGES" untuk membuat perubahan berkesan.
Petua Tambahan:
- Sahkan bahawa anda menggunakan port MySQL yang betul dalam konfigurasi aplikasi anda.
- Lumpuhkan sebarang tembok api yang mungkin menyekat sambungan pangkalan data.
- Pastikan pelayan MySQL sedang berjalan dan mendengar pada yang ditentukan pelabuhan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat \'SQLSTATE[HY000] [1045] Akses Ditolak untuk Pengguna \'nama pengguna\'@\'localhost\'\' dalam Aplikasi CakePHP Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!