Содержание
Вы забыли пароль root MySQL на вашем сервере? Вы переустановили MySQL на своем сервере, неправильно ввели пароль, и теперь вы не можете получить доступ к вашему серверу MySQL? Каковы бы ни были причины, очень важно знать, как сбросить пароль root на вашем сервере MySQL в случае, если произойдет что-то подобное упомянутым случаям.
В этом уроке мы покажем, как сбросить пароль root вашего сервера MySQL в Ubuntu 16.04.
1. Остановите активную службу MySQL
В качестве первого шага вам нужно остановить любой работающий экземпляр MySQL, который активен:
sudo service mysql stop
Это позволит вам запустить службу MySQL в безопасном режиме.
2. Запустите MySQL в безопасном режиме
Если вы уверены, что в фоновом режиме не выполняется ни один процесс MySQL, вы можете запустить безопасную версию MySQL с помощью mysqld_safe. Однако он будет выполнен с аргументом skip-grant-tables:
mysqld_safe --skip-grant-tables &
Это позволяет любому пользователю подключаться без пароля и со всеми привилегиями, а также отключает операторы управления учетными записями, такие как ALTER USER
а также SET PASSWORD
. Поскольку это небезопасно, если сервер запущен с --skip-grant-tables
опция, это позволяет --skip-networking
автоматически для предотвращения удаленных подключений.
3. Доступ от имени пользователя root
Теперь, когда mysql работает без какой-либо локальной проверки безопасности, вам нужно войти в систему как пользователь root с помощью следующей команды в CLI MySQL:
mysql -u root mysql
4. Сменить пароль
Теперь, когда у вас есть доступ к интерфейсу командной строки mysql, вы сможете без проблем выполнять запросы, в том числе и те, которые изменяют пароль Root. Сначала измените базу данных на mysql с помощью следующего запроса:
use mysql;
Затем в MySQL 5.7 вы можете изменить пароль пользователя с помощью следующего запроса, как вы можете видеть, пользователь в этом случае будет root:
update user set authentication_string=password('YOUR-NEW-PASSWORD') where user='root';
Предупреждение: в случае, если вы столкнулись со следующим исключением после выполнения предыдущего запроса:
ОШИБКА 1820 (HY000): перед выполнением этого оператора необходимо сбросить пароль с помощью инструкции ALTER USER.
Вы можете устранить эту ошибку, выполнив сначала следующий запрос:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR-NEW-PASSWORD';
Затем снова запустите запрос на обновление, и он снова будет работать (больше информации об этой проблеме здесь). И это все! На следующем шаге вы сможете войти в mysql как root с новым паролем.
5. Остановите безопасный MySQL и запустите нормальный сервис
Остановите безопасную версию MySQL с помощью следующей команды:
sudo service mysql stop
И снова запустите обычный сервис:
service mysql start
Как только служба запускается правильно, получите доступ к MySQL CLI с помощью следующей команды:
mysql -u root -p
Это запросит пароль, который вы установили ранее для пользователя root, и все!