Menyiasat "SQLSTATE[HY000] [1045] Access Denied" Ralat
Punca:
Ralat dinafikan akses berlaku apabila bukti kelayakan yang disediakan untuk sambungan pangkalan data tidak betul atau tidak mencukupi. Dalam kes yang diberikan, mesej ralat menunjukkan bahawa pengguna 'test2' dengan hos 'localhost' dinafikan akses.
Penyelesaian:
-
Sahkan Kewujudan Pengguna: Jalankan pertanyaan berikut untuk mengesahkan sama ada pengguna 'test2' wujud untuk hos yang diberikan 'localhost':
SELECT user, host FROM mysql.user
Salin selepas log masuk
-
Semak Hos Padanan: Pastikan hos yang dinyatakan dalam konfigurasi CakePHP sepadan dengan hos yang dikaitkan dengan pengguna MySQL. Jika hos ditetapkan kepada '%', tukarkannya kepada 'localhost'.
-
Tetapkan Semula Kata Laluan jika Perlu: Jika pengguna wujud, tetapkan semula kata laluan menggunakan arahan berikut:
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('mysecretcleartextpassword')
Salin selepas log masuk
-
Berikan Keistimewaan Pangkalan Data: Berikan keistimewaan yang diperlukan untuk pengguna pada pangkalan data kerja:
GRANT SELECT ON jobs.* TO 'test2'@'localhost'
Salin selepas log masuk
-
Keistimewaan Flush: Paksa MySQL untuk membaca semula jadual keistimewaan:
FLUSH PRIVILEGES
Salin selepas log masuk
Tambahan Pertimbangan:
- Pastikan pelayan MySQL mempunyai peraturan firewall yang betul.
- Jika dijalankan pada WAMP, semak sama ada pelayan WAMP dikonfigurasikan untuk mendengar pada port 3306 .
- Sahkan bahawa anda menggunakan versi MySQL yang betul yang disokong oleh CakePHP.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'SQLSTATE[HY000] [1045] Access Denied\' dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!