Solusi Mudah Tidak dapat Masuk ke PhpMyAdmin dengan Akun Root
Publisher Ahmad
Penulis
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….
Tentang Penulis
Publisher Ahmad
Teknisi dan penulis konten di Kartinisoft — spesialis solusi digital berbasis Laravel, Python, dan AI.