Сегодня поговорим об ошибке ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ выдаваемой при попытке подключится к MYSQL
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Для исправления данной ошибке на Ubuntu Server 16.04/18.04/20.04 останавливаем сервер mysql
sudo service mysql stop
Далее запускаем сервер mysql в безопасном режиме:
sudo mysqld_safe --skip-grant-tables --skip-networking
Если команда выдает ошибку, то выполняем еще и следующие команды.
Сделать сервисный каталог MySQL.
sudo mkdir -p /var/run/mysqld
Дайте пользователю MySQL разрешение на запись в данный каталог:
sudo chown mysql: /var/run/mysqld
Запуск сервера в безопасном режиме будет продолжаться до завершения процесса, поэтому откройте другое окно терминала и войдите в mysql без пароля:
mysql -u root
Вот теперь вносим необходимые изменения для версии MySQL 5.7.5 и более ранние версии:
use mysql;
update user set password=PASSWORD("MyNewPasswd") where User='root';
flush privileges;
Для версии MySQL 5.7.6 и более поздние версии:
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPasswd';
flush privileges;
Примечание: При выполнении данных действий может случится так, что вход для пользователя root будет заблокирован. Во избежание данной проблемы настоятельно рекомендую создать нового пользователя с правами root.
Создание нового пользователя MySQL с правами root
В консоле MySQL набираем следующее:
CREATE USER 'new_username'@'your-hostname' IDENTIFIED BY 'MyPasswd';
GRANT ALL PRIVILEGES ON *.* to 'new_username'@'your-hostname' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Где new_username – имя нового пользователя Your-hostname – имя хоста, например localhost, также можно указать ip адрес.
Теперь перезапустите mysql
sudo systemctl restart mysql
После данных процедур ошибка “ERROR 1045 (28000): Access denied for user ‘root’@’localhost'” должна исчезнуть.
[endtxt]