Penyelesaian kepada Amaran PHP: mysql_query(): Akses ditolak untuk pengguna
Apabila menggunakan PHP untuk menyambung ke pangkalan data MySQL, anda kadangkala menghadapi mesej ralat berikut:
Amaran PHP: mysql_query ( ): Akses ditolak untuk pengguna 'xxx'@'localhost' (menggunakan kata laluan: YA)
Ini kerana nama pengguna atau kata laluan yang digunakan oleh PHP untuk menyambung ke pangkalan data MySQL adalah salah. Artikel ini akan menerangkan cara menyelesaikan masalah ini.
Penyelesaian
1. Semak sama ada nama pengguna dan kata laluan MySQL adalah betul
Pertama pastikan nama pengguna dan kata laluan MySQL yang anda gunakan adalah betul. Anda boleh cuba menggunakan baris arahan MySQL untuk mengesahkan bahawa nama pengguna dan kata laluan anda adalah betul:
$ mysql -u your_username -p
Contohnya, jika nama pengguna anda ialah "root", masukkan The arahan berikut:
$ mysql -u root -p
Seterusnya, anda akan digesa untuk kata laluan anda. Selepas memasukkan kata laluan, jika anda berjaya log masuk ke pelayan MySQL, bermakna nama pengguna dan kata laluan anda adalah betul. Jika tidak, pastikan anda memasukkan nama pengguna dan kata laluan anda dengan betul.
2. Semak kebenaran akses MySQL
Jika nama pengguna dan kata laluan anda betul tetapi anda masih menghadapi ralat dinafikan akses, ini mungkin kerana pelayan MySQL anda tidak dikonfigurasikan dengan kebenaran yang betul . Dalam MySQL, hanya pengguna dengan kebenaran yang mencukupi boleh mengakses pangkalan data dan jadual tertentu.
Anda boleh menyemak hak akses pengguna MySQL menggunakan arahan berikut:
$ TUNJUKKAN GERAN UNTUK pengguna@localhost;
di mana pengguna@localhost mengenal pasti pengguna MySQL yang anda mahu semak dan hos yang anda sambungkan. Sebagai contoh, jika nama pengguna anda ialah "root", kemudian masukkan arahan berikut:
$ TUNJUKKAN GERAN UNTUK root@localhost;
Jika anda mendapati pengguna MySQL anda tidak mempunyai akses kepada pangkalan data atau kebenaran jadual tertentu, sila gunakan arahan berikut untuk membenarkan pengguna:
$ BERIKAN SEMUA KEISTIMEWAAN PADA database_name.* KEPADA 'user_name'@'localhost' DIKENAL PASTI OLEH 'password';
di mana nama_database ditentukan Nama pangkalan data yang akan diberikan akses, nama_pengguna menentukan nama pengguna MySQL untuk dibenarkan, dan kata laluan menentukan kata laluan pengguna. Contohnya, jika anda ingin memberi kebenaran kepada pengguna root untuk mengakses pangkalan data mydb, masukkan arahan berikut:
$ BERIKAN SEMUA KEISTIMEWAAN PADA mydb.* KEPADA 'root'@'localhost' DIKENALPASTI OLEH 'your_password';
Selepas keizinan selesai, anda harus cuba menyambung semula ke MySQL dan melaksanakan skrip PHP anda.
3. Semak log MySQL
Akhir sekali, jika anda masih tidak dapat menyelesaikan masalah selepas mencuba penyelesaian di atas, adalah disyorkan untuk menyemak fail log ralat MySQL. Fail log biasanya terletak dalam direktori /var/log pelayan MySQL (atau di bawah Windows, ini mungkin C:/ProgramData/MySQL/MySQL Server X.X/ atau C:/Program Files/MySQL/MySQL Server X.X/) .
Buka fail log ralat dan periksa mesej ralat di dalamnya untuk mencari maklumat yang lebih terperinci untuk membantu menentukan punca masalah.
Kesimpulan
Dalam artikel ini, kami memperkenalkan cara menyelesaikan Amaran PHP: mysql_query(): Akses ditolak kerana ralat ‘xxx’@‘localhost’ pengguna. Jika akses pangkalan data anda masih terhad, sentiasa semak fail log untuk mendapatkan maklumat yang lebih mendalam tentang masalah tersebut.
Atas ialah kandungan terperinci Penyelesaian kepada Amaran PHP: mysql_query(): Akses ditolak untuk pengguna. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!