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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *