Во время работы с СУБД MySQL крайне важно знать, как сменить пароль пользователя. Кажется, что эту задачу можно решить, только обладая правами суперпользователя. Но даже обычный пользователь сможет сменить пароль при определенных обстоятельствах. В этой статье мы расскажем, как это делается при обычных условиях.
Сменить пароль пользователя можно разными способами. В среде MySQL для этой задачи предусмотрены две команды – SET PASSWORD
и ALTER USER
. Подробно расскажем о каждом из этих двух способов.
На начало текущего года в MySQL предусмотрены две основные версии. Первая устаревшая, но все еще поддерживаемая (это версия 5.7), а самая актуальная на данный момент – версия 8.0. Как узнать версию MySQL? Сделать это можно с помощью специальной команды, которую следует выполнить в терминале:
$ mysql –version
Как видим из изображения выше, используется версия 8.0.28, но при этом важно учесть, что ALTER USER
актуальна только в прежних версиях MySQL.В более новых версиях можно использовать обе версии.
Для входа в консоль следует авторизоваться в MySQL, используя логин и пароль. Когда на сервере уже авторизован пользователь, то все действия нужно выполнять от его имени. В том случае, когда MySQL задействована впервые, то нужно использовать права root.
Команда для входа в root:
$ mysql -u root –p
После чего произойдет запрос пароля. Останется ввести пароль, нажать клавишу Enter, сразу после этого загрузится интерфейс MySQL со всеми доступными командами.
Особенность MySQL в том, что в ней есть отдельный хост, к которой привязана учетная запись. Отметим три основных хоста:
localhost допускает только локальный вход без возможности удаленного подключения, символ % означает, что использовать такую учетную запись можно с любых хостов, IP адрес/доменное имя означает, что использовать учетную запись можно только на выбранном доменном имени/IP адресе.
Чтобы узнать тип хоста учетной записи необходимо выполнить следующий SQL запрос:
$ SELECT user, host FROM mysql.user
На скриншоте выше мы видим, что для пользователя alex задействован хост %. Этот хост и надо использовать при смене пароля. Пользователи в MySQL и вся информация о пользователях хранятся в базе данных mysql в таблице user.
Также поменять пароль можно командой SET PASSWORD
. Чтобы сменить пароль для пользователя alex с хостом % на somepassword666 нужно использовать следующую команду:
$ SET PASSWORD FOR 'alex'@'%' = 'somepassword666';
Сменить код пользователя можно, используя другую команду – ALTER USER
. Поменять пароль для пользователя alex с хостом % на anotherpassword666 выполним SQL запрос:
$ ALTER USER 'alex'@'%' IDENTIFIED BY 'anotherpassword666';
Здесь следует учитывать, что имя пользователя и хост пользователя заключены в одинарные кавычки, без этих кавычек MySQL не сможет распознать строку.
Теперь сбрасываем кэш привилегий:
$ FLUSH PRIVILEGES;
Как только вы изменили пароль, изменили привилегия и сбросили кэш, следует выполнить проверку вход от имени пользователя, чей пароль был изменен.
Выйдите из оболочки MySQL, выполнив команду exit
:
$ exit
Теперь входим в оболочку:
$ mysql -u alex -p
Если вы видите приглашение системы во время входа, то все сделали правильно, а значит, пароль успешно был сменен.