С такой ошибкой мы можем столкнуться не только при попытке входа в phpmyadmin под root, но и при иных запросах(например из php скриптов), которые требуется делать от root. Если мы не перепутали пароль, дело по всей вероятности в том, что root пользователь настроен для авторизации через плагин unix_socket. Войдем в консоль mysql от root и проверим, так ли это:
USE mysql; SELECT User, Host, plugin FROM mysql.user;
Если напротив root мы видим unix_socket или auth_socket значит причина именно в этом. Есть несколько вариантов решения.
Можно установить пустое значение для поля plugin либо установить значение mysql_native_password
USE mysql; UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES; exit;
можно сделать тоже самое с одновременной установкой нового root пароля:
mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new-password';"
либо можно создать для наших целей другого пользователя со всеми привилегиями для всех баз:
USE mysql; CREATE USER 'YOUR_USER'@'localhost' IDENTIFIED BY 'USER_PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO 'YOUR_USER'@'localhost'; UPDATE user SET plugin='' WHERE User='YOUR_USER'; FLUSH PRIVILEGES; exit;
после любых из перечисленных выше манипуляций, не забываем перезапустить mysql
systemctl restart mysql