Solusi Mudah Tidak dapat Masuk ke PhpMyAdmin dengan Akun Root

Can’t log into phpMyAdmin: mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’

Kesalahan ini mungkin disebabkan oleh salah satu alasan berikut:

  • Karena adanya perubahan asitektur pada MySQL 5.7 / MySQL 8+, Anda tidak dapat masuk ke phpMyAdmin menggunakan akun root.
  • Anda lupa kata sandi root Anda.
  • konfigurasi host untuk root mencegah akses melalui phpMyAdmin.
  • Anda mencoba masuk ke phpMyAdmin menggunakan akun selain root tetapi mendapatkan pesan kesalahan “Access denied for user (using password: YES)”.

Bagaimana solusinya ?

Buat Superuser Baru untuk phpMyAdmin ( user baru setara root )

Di terminal, masuk ke MySQL sebagai root. Anda mungkin telah membuat kata sandi root saat Anda menginstal MySQL untuk pertama kali atau kata sandinya mungkin kosong
$ sudo mysql -p -u root
mysql>  CREATE USER 'nama_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passwornya_ini';

Perintah di atas akan membuat pengguna baru bernama nama_user (nama user yang ada pilih) yang dapat mengakses server MySQL dari localhost dengan kata sandi passwornya_ini. Silahkan disesuaikan.

Sekarang kamu bisa memberikan hak istimewa superuser ke user baru yang di buat tadi nama_user .

mysql> GRANT ALL PRIVILEGES ON *.* TO 'nama_user'@'localhost';

Langkah terakhir Flush privileges.

mysql> FLUSH PRIVILEGES;

Cara ke 2 Ubah Metode Otentikasi root

Untuk masuk ke phpMyAdmin sebagai pengguna root MySQL Anda, Anda perlu mengganti metode autentikasinya dari auth_socket atau caching_sha2_password ke mysql_native_password.
$ sudo mysql -p -u root
mysql> SELECT user,plugin,host FROM mysql.user WHERE user = 'root';

Hasilnya :

Di atas kita dapat melihat bahwa plugin untuk akun root diatur ke auth_socket. Ini mungkin juga menunjukkan caching_sha2_password. Anda perlu mengubahnya menjadi mysql_native_password. Selain itu, nilai host harus disetel ke localhost atau %. Jika disetel ke yang lain, Anda mungkin tidak dapat masuk ke phpMyAdmin dengan root.

Jalankan perintah berikut untuk mengubah nilai plugin menjadi mysql_native_password. Pastikan untuk mengganti enter_password_here dengan milik Anda.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'enter_password_here';

Langkah terakhir Flush privileges.

mysql> FLUSH PRIVILEGES;

Kesimpulan : saya rekomendasikan memakai cara pertama saja lebih aman karena usernya tidak bisa ditebak oleh orang tidak bertanggungjawab. Semoga Berhasil….

You may also like...

Popular Posts

Leave a Reply

Your email address will not be published. Required fields are marked *