Apabila menggunakan PHP untuk menyambung ke pangkalan data MySQL, anda sering menghadapi mesej ralat "Amaran PHP: mysqli_query(): (HY000/1045): Akses ditolak untuk pengguna".
Ralat ini biasanya disebabkan oleh nama pengguna atau kata laluan pangkalan data yang salah. Jika ia tidak dikendalikan tepat pada masanya, PHP tidak akan dapat menyambung ke pangkalan data MySQL dan tidak dapat melaksanakan operasi pangkalan data.
Berikut ialah beberapa cara biasa untuk menyelesaikan masalah ini:
Semak sama ada nama pengguna dan kata laluan adalah betul dalam kod php Nama pengguna dan kata laluan adalah sama seperti dalam pangkalan data MySQL, termasuk kes yang betul. Jika ia adalah sambungan setempat, anda boleh cuba menyambung menggunakan akaun akar atau akaun lain dengan hak akses pangkalan data untuk menyemak sama ada mereka boleh menyambung dengan jayanya.
Jika pelayan MySQL tidak berjalan, anda tidak akan dapat menyambung kepadanya. Jalankan arahan "service mysql status" atau "systemctl status mysqld.service" pada terminal, atau gunakan "mysqli_connect_errno()" dalam kod PHP untuk menyemak sama ada ralat berlaku dalam sambungan Jika perkhidmatan MySQL tidak bermula, anda perlu menyelesaikan masalah dengan memulakan soalan pelayan MySQL.
Jika pengguna MySQL tidak mempunyai kebenaran untuk menggunakan pangkalan data, operasi pangkalan data tidak boleh dilakukan. Jalankan arahan berikut untuk membenarkan pengguna mysql menggunakan pangkalan data: BERIKAN SEMUA . KEPADA 'mysqluser'@'localhost' DIKENAL PASTI OLEH 'kata laluan';
Semak sama ada tetapan tembok api anda membenarkan komunikasi dengan pelayan MySQL. Biasanya, pelayan MySQL menggunakan port 3306 untuk sambungan secara lalai, jadi anda perlu memastikan bahawa port ini dibenarkan melalui tembok api.
Log pelayan MySQL mungkin memberikan butiran tentang kegagalan sambungan. Cari fail log ralat dalam direktori pemasangan MySQL dan cuba cari rekod tentang kegagalan sambungan.
Akhir sekali, sebaik sahaja mesej ralat "PHP Warning: mysqli_query(): (HY000/1045): Access denied for user" muncul, kita perlu menyiasat pelbagai kemungkinan punca satu persatu mengikut situasi tertentu, dan selepas menyelesaikan masalah Cuba sambung semula ke pangkalan data MySQL untuk memastikan PHP boleh menyambung dengan lancar dan melaksanakan operasi pangkalan data.
Atas ialah kandungan terperinci Penyelesaian kepada Amaran PHP: mysqli_query(): (HY000/1045): Akses ditolak untuk pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!