Beberapa hari yang lalu saya sempat mengalami error pada phpmyadmin saya. Dan kebetulan saya juga baru install ulang sistem operasi ubuntu dan menginstall phpmyadmin untuk meremote server MySQL saya, notifikasi error dengan kode mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’.
![[Solved]-mysqli_real_connect():-(HY000/1698):](https://i0.wp.com/www.bengkelti.com/wp-content/uploads/2022/01/mysqli-real-connect.webp?w=1080&ssl=1)
Seperti gambar diatas terdapat kode error [Solved] mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’ itu menandakan bahwa akun root tidak punya akses. Saya sempat berfikir dan menemukan informasi tentang MySQL 5.7 bahwa sejak versi 5.7 MySQL sudah merubah model kemanannya sehingga ketika login menggunakan akun root harus menggunakan perintah sudo dengan kata lain phpmyadmin tidak bisa menggunakan user root. Sedangkan perintah sudo hanya ada pada CLI ada 2 solusi yang saya terapkan pada komputer saya, kedua solusi ini pada dasarnya sama tinggal kalian mengatur hak akses pada user root atau membuat user baru dengan hak istimewa.
Bagaimana cara mengatasi mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’ ?
Ada dua solusi untuk mengatasi masalah tersebut.
Solusi 1 – [Solved] mysqli_real_connect(): (HY000/1698):
Jika kalian ingin tetap ingin menggunakan user root agar bisa masuk kedalam phpmyadmin, yang perlu kalian lakukan adalah memberikan akses bebas kepada user root agar bisa terhubung ke MySQL server menggunakan Aplikasi lain seperti phpmyadmin.
Buka terminal kalian. Jalankan perintah berikut untuk masuk kedalam MySQL Server sebagai root.
sudo mysql -u root -p
Modifikasi aun root menggunakan ALTER. Ketikkan perintah berikut dan tekan Enter.
# Perintah ini menghosting database keseluruhan
# dari mesin lokal maupun dari ip jaringan.
ALTER USER 'root'@'%' IDENTIFIED BY 'berikan password baru disini';
# jika ingin berjalan pada mesin kalian saja
# bisa menggunakan perintah berikut.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password baru kalian';
# Jika kalian ingin berjalan pada jaringan kalian
# sehingga bisa diakses remote dalam satu jaringan
# atau remote jarak jauh dengan IP Publik.
ALTER USER 'root'@'ip_address' IDENTIFIED BY 'password baru';
Kalian bisa menggunakan yang localhost untuk mengatasi masalah diatas.
Reload hasil perubahan tadi. Menggunakan perintah berikut ini.
FLUSH PRIVILEGES;
Solusi 2 – [Solved] mysqli_real_connect(): (HY000/1698):
Solusi yang kedua ini adalah kalian membiarkan user root dan kalian perlu membuat akun baru yang diberikan hak akses istimewa. Kalian hanya perlu membuatnya pada MySQL Server Commmand Line.
Jangan lupa untuk masuk kedalam terimnal. Jalankan perintah berikut.
sudo mysql -u root -p
Membuat user baru, ketikkan perintah berikut dan tekan Enter.
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password baru';
Memberikan hak akses istimewa terhadap pengguna baru.
# Perintah ini mempunyai akses keseluruhan database tidak spesifik,
# hampir seperti root ditandai dengan *.* (semua database).
GRANT ALL PRIVILEGES ON *.* TO 'username kalian'@'localhost';
# Perintah ini mempunyai akses pada database tertentu atau
# database yang kalian tuju ditandai dengan nama_database.*.
GRANT ALL PRIVILEGES ON nama_database.* TO 'username kalian'@'localhost';
# Perintah ini mempunyai akses lebih dalam tabel pada database
# ditandai dengan nama_database.nama_tabel.
GRANT ALL PRIVILEGES ON nama_database.nama_tabel TO 'username kalian'@'localhost';
Reload hasil perubahan tadi.
FLUSH PRIVILEGES;
# keluar dari MySQL Server ketikkan perintah berikut.
Ctrl + D
Cukup itu saja bagaimana cara mengatasi mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’. Mungkin dari kalian ada metode-metode lain untuk mengatasi permasalahan diatas silahkan berkomentar dibawah.
Baca Artikel Lainnya :
- [Solved] mysqli_real_connect(): (HY000/2002): No such file or directory
- NVIDIA MX Linux no display After Installing Driver [SOLVED]
- Fix Resolusi Ubuntu 1024×768 (Unknown Monitor)
0 Comments