Pengenalan:
Apabila cuba mengakses pangkalan data MySQL daripada PHP atau phpMyAdmin, anda mungkin menghadapi ralat berikut:
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
Ralat ini menunjukkan bahawa pengguna yang cuba menyambung ke pangkalan data kekurangan keperluan yang diperlukan keistimewaan.
Penyelesaian:
Perubahan terbaru dalam MySQL 5.7 menghalang pengguna root daripada menyambung ke pangkalan data tanpa keistimewaan yang tinggi. Untuk menyelesaikan isu ini, ikut langkah berikut:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
Ubah suai kod PHP untuk menyambung menggunakan bukti kelayakan pengguna baharu:
<code class="php">protected $name = 'newuser'; protected $pass = 'password';</code>
Jika anda ingin terus menggunakan pengguna root, anda perlu meningkatkan keistimewaan anda dengan menjalankan arahan dengan sudo:
<code class="sh">sudo mysql -u root</code>
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \'SQLSTATE[HY000] [1698] Akses dinafikan untuk Ralat \'root\'@\'localhost\'\' pengguna dalam Ubuntu 16.04?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!