В сегодняшней статье разберемся как устранить ошибку:
#1698 – Access denied for user ‘root'@'localhost'
при попытке подключиться к БД из под root.
MySQL 5.7 изменила модель безопасности: теперь вход в MySQL под рутом (root) требует sudo (при этом пароль всё равно может быть пустым). Т.е. phpMyAdmin невозможно использовать под пользователем root.
Самым простым (и самым безопасным) решением будет создать нового пользователя и предоставить ему требуемые привилегии.
Но начнём мы с другого решения:
Разрешить пользователю root подключаться к MySQL без sudo
Для получения доступа к базе данных MySQL/MariaDB обычному пользователю без использования sudo привилегий, зайдите в приглашение командной строки MySQL
sudo mysql
и запустите следующие команды:
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit
Или так:
use mysql;
UPDATE mysql.user SET authentication_string = PASSWORD('12345') WHERE User = 'root' AND Host = 'localhost';
update user set plugin='mysql_native_password' where User='root';
flush privileges;
exit
Затем перезапустите службу MySQL и попробуйте войти в базу данных без sudo, как показано ниже.
sudo systemctl restart mysql.service
mysql -u root -p
Создание нового пользователя
Подключитесь к mysql
sudo mysql --user=root mysql
Создайте нового пользователя с правами root
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
exit
После этого можете войти под новым пользователем (myuser) в вашу базу данных с правами как у root.
[endtxt]