Одной из важных операций при работе с пользователями в СУБД MySQL является смена пароля пользователя. Как правило изменить пароль пользователя может только суперпользователь с именем root. Однако если обычный пользователь наделен полномочиями на смену пароля то он также может это сделать.
Рассмотрено как изменить пароль пользователя MySQL в операционной системе Ubuntu 20.04.
Содержание:
Как сменить пароль пользователя MySQL
- 1. Как узнать версию MySQL
- 2. Вход в консоль MySQL
- 3. Просмотр хостов пользователя
- 4. Смена пароля пользователя при помощи SET PASSWORD
- 5. Смена пароля пользователя при помощи ALTER USER
- 6. Сброс кэша привилегий
- 7. Проверка нового пароля
Как сменить пароль пользователя MySQL
Для смены пароля пользователя в MySQL присутствует несколько способов, в частности, это смена пароля при помощи команды SET PASSWORD или ALTER USER. Далее в статье будут рассмотрены все 2 способа.
1. Как узнать версию MySQL
На данный момент (начало 2022 года) MySQL поддерживает две основные версии. Первая это устаревшая, но все еще поддерживая версия 5.7 и последняя актуальная версия 8.0. Для того чтобы узнать используемую версию необходимо выполнить следующую команду в терминале:
mysql --version
Получим следующего вида ответ:
mysql Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
В данном случае используется версия 8.0.28. Инструкция ALTER USER доступна только в современных версиях MySQL. Если у вас версия 5.x.x. то в ней следует использовать SET PASSWORD. В более новых версиях можно применять обе инструкции.
2. Вход в консоль MySQL
Для того чтобы попасть в консоль MySQL необходимо авторизоваться при помощи логина и пароля. Если на сервере уже зарегистрирован необходимый пользователь, то вход необходимо выполнять от имени этого пользователя. Если MySQL используется впервые после установки, то входить необходимо при помощи пользователя root. Команда входа под пользователем root выглядит следующим образом (где вместо пользователя root можно использовать имя необходимого пользователя):
mysql -u root -p
Далее MySQL запросит пароль. В целях безопасности пароль не отображается в терминале. После ввода пароля необходимо нажать на клавишу Enter. После этого отобразится интерфейс консольного клиента MySQL, где можно использовать SQL команды.
3. Просмотр хостов пользователя
В MySQL у каждой учетной записи есть свой хост, к которому данная учетная запись привязана. Есть 3 основных типа хостов в MySQL: localhost, % и IP адрес/доменное имя.
Тип записи localhost означает что под учетной записью можно входить только локально без возможности удаленного подключения, символ % (процент) означает что использовать такую учетную запись можно с любых хостов (в том числе и удаленных), IP адрес/доменное имя означает что использовать учетную запись можно только на выбранном доменном имени/IP адресе. Для того чтобы узнать тип хоста учетной записи необходимо выполнить следующий SQL запрос:
SELECT user, host FROM mysql.user;
Получим ответ:
mysql> SELECT user, host FROM mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| myuser | % |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
5 rows in set (0.00 sec)
В ответе видно, что для пользователя myuser используется хост %. Соответственно, этот хост и надо использовать при смене пароля. Пользователи в MySQL и вся информация о пользователях хранятся в базе данных mysql в таблице user.
4. Смена пароля пользователя при помощи SET PASSWORD
Сменить пароль пользователя MySQL можно при помощи команды SET PASSWORD. Для того чтобы сменить пароль для пользователя myuser с хостом % на newpassword1 выполните такую команду:
SET PASSWORD FOR 'myuser'@'%' = 'newpassword1';
5. Смена пароля пользователя при помощи ALTER USER
Также установить пароль пользователя можно при помощи команды ALTER USER. Для того чтобы поменять пароль для пользователя myuser с хостом % на newpassword1 выполните SQL запрос:
ALTER USER 'myuser'@'%' IDENTIFIED BY 'newpassword1';
Обратите внимание что имя пользователя и хост пользователя заключены в одинарные кавычки, без этих кавычек MySQL не сможет распознать строку.
6. Сброс кэша привилегий
Вне зависимости от того какая команда была выполнена для смены пароля, после изменения пароля необходимо сбросить кэш привилегий. Сделать это можно, выполнив команду:
FLUSH PRIVILEGES;
7. Проверка нового пароля
После того как пароль был изменен и кэш привилегий сброшен, необходимо проверить вход от имени пользователя чей пароль был изменен. Для этого необходимо выйти из оболочки MySQL выполнив команду exit:
exit
Далее необходимо войти в оболочку MySQL под необходимым пользователем ведя его новый пароль. Для примера войдем под пользователем myuser, чей пароль был изменен ранее:
mysql -u myuser -p
Если после ввода пароля появилось приглашение к вводу MySQL, то это означает что пароль был успешно обновлен.
Источник: https://losst.pro