You’ve installed phpMyAdmin but cannot log in using the root account.
mysqli_real_connect(): (HY000/1698): Access denied for user 'root'@'localhost'
In MySQL 5.7 and above, root login requires sudo privileges and phpMyAdmin will not be able to use root credentials.
It’s also not recommended that you allow the root account to be accessible remotely via phpMyAdmin as bots and hackers scan for these accounts continuously.
Instead, create a new superuser account with a different username.
In terminal, log in to MySQL as
root. You may have created a root password when you installed MySQL for the first time or the password could be blank, in which case you can just press
ENTER when prompted for a password. If you have forgotten your root password, you can always Reset the MySQL Root Password.
sudo mysql -p -u root
Now add a new MySQL user with the username of your choice. In this example we are calling it
pmauser (for phpmyadmin user). Make sure to replace
password_here with your own. You can generate a password here.
% symbol here tells MySQL to allow this user to log in from anywhere remotely. If you wanted heightened security, you could replace this with an IP address.
CREATE USER 'pmauser'@'%' IDENTIFIED BY 'password_here';
Now we will grant superuser privilege to our new user.
GRANT ALL PRIVILEGES ON *.* TO 'pmauser'@'%' WITH GRANT OPTION;
You should now be able to access phpMyAdmin using this new user account.
Hope this helps! 😀