Меняем пароль пользователя в MySQL

10.10.2022, 21:52

Во время работы с СУБД MySQL крайне важно знать, как сменить пароль пользователя. Кажется, что эту задачу можно решить, только обладая правами суперпользвователя. Но даже обычный пользователь сможет сменить пароль при определенных обстоятельствах. В этой статье мы расскажем, как это делается при обычных условиях.

Меняем пароль пользователя в СУБД MySQL

Сменить пароль пользователя можно разными способами. В среде MySQL для этой задачи предусмотрены две команды – SET PASSWORD и ALTER USER. Подробно расскажем о каждом из этих двух способов.

Узнаем версию MySQL

На начало текущего года в MySQL предусмотрены две основные версии. Первая устаревшая, но все еще поддерживаемая (это версия 5.7), а самая актуальная на данный момент – версия 8.0. Как узнать версию MySQL? Сделать это можно с помощью специальной команды, которую следует выполнить в терминале:

$ mysql –version

Узнаем версию MySQL

Как видим из изображения выше, используется версия 8.0.28, но при этом важно учесть, что ALTER USER актуальна только в прежних версиях MySQL.В более новых версиях можно использовать обе версии.

Как зайти в консоль

Для входа в консоль следует авторизоваться в MySQL, используя логин и пароль. Когда на сервере уже авторизован пользователь, то все действия нужно выполнять от его имени. В том случае, когда MySQL задействована впервые, то нужно использовать права root.

Команда для входа в root:

$ mysql -u root –p

Как зайти в консоль

После чего произойдет запрос пароля. Останется ввести пароль, нажать клавишу Enter, сразу после этого загрузится интерфейс MySQL со всеми доступными командами.

Просмотр хостов

Особенность MySQL в том, что в ней есть отдельный хост, к которой привязана учетная запись. Отметим три основных хоста:

  • Localhost;
  • %;
  • IP адрес/доменное имя.

localhost допускает только локальный вход без возможности удаленного подключения, символ % означает, что использовать такую учетную запись можно с любых хостов, IP адрес/доменное имя означает, что использовать учетную запись можно только на выбранном доменном имени/IP адресе.

Чтобы узнать тип хоста учетной записи необходимо выполнить следующий SQL запрос:

$ SELECT user, host FROM mysql.user

Просмотр хостов

На скриншоте выше мы видим, что для пользователя alex задействован хост %. Этот хост и надо использовать при смене пароля. Пользователи в MySQL и вся информация о пользователях хранятся в базе данных mysql в таблице user.

Меняем пароль с помощью SET PASSWORD

Также поменять пароль можно командой SET PASSWORD. Чтобы сменить пароль для пользователя alex с хостом % на somepassword666 нужно использовать следующую команду:

$ SET PASSWORD FOR 'alex'@'%' = 'somepassword666';

Меняем пароль с помощью SET PASSWORD

Меняем пароль с помощью ALTER USER

Сменить код пользователя можно, используя другую команду – ALTER USER. Поменять пароль для пользователя alex с хостом % на anotherpassword666 выполним SQL запрос:

$ ALTER USER 'alex'@'%' IDENTIFIED BY 'anotherpassword666';

Меняем пароль с помощью ALTER USER

Здесь следует учитывать, что имя пользователя и хост пользователя заключены в одинарные кавычки, без этих кавычек MySQL не сможет распознать строку.

Теперь сбрасываем кэш привилегий:

$ FLUSH PRIVILEGES;

Как проверить новый пароль

Как только вы изменили пароль, изменили привилегия и сбросили кэш, следует выполнить проверку вход от имени пользователя, чей пароль был изменен.

Выйдите из оболочки MySQL, выполнив команду exit:

$ exit

Как проверить новый пароль

Теперь входим в оболочку:

$ mysql -u alex -p

Как проверить новый пароль

Если вы видите приглашение системы во время входа, то все сделали правильно, а значит, пароль успешно был сменен.