Сброс пароля пользователя mysql с помощью хэшированного пароля

Сброс пароля пользователя mysql с помощью хэшированного пароля

На сервере MySQL я допустил ошибку и изменил пароль неправильного пользователя, вот так:

SET PASSWORD FOR username@'10.1.%' = PASSWORD('newpassword');

Перед сменой пароля я использовал "SHOW GRANTS FOR username@'10.1.%'" и заметил отображаемый хэш пароля. Как я могу использовать хэшированный пароль для сброса текущего пароля обратно к исходному? Я пробовал использовать ту же команду "SET PASSWORD" с хешем как 'newpassword', но похоже, что это буквально сделало хэш новым паролем.

решение1

Похоже, вы используете MySQL 5.6. Вот процесс в этой версии:

Оригинальный пароль при создании пользователя

create user username@'10.1.%' identified by 'password';
show grants for username@'10.1.%';

выход:

GRANT USAGE ON *.* TO 'username'@'10.1.%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'

Смена пароля

set password for username@'10.1.%' = PASSWORD('newpassword');
show grants for username@'10.1.%';

выход:

GRANT USAGE ON *.* TO 'username'@'10.1.%' IDENTIFIED BY PASSWORD '*FE4F2D624C07AAEBB979DA5C980D0250C37D8F63'

Восстановление пароля

set password for username@'10.1.%' = '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19';
show grants for username@'10.1.%';

выход:

GRANT USAGE ON *.* TO 'username'@'10.1.%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'

Можете ли вы проверить, что вы используете весь хешированный пароль? Одна из ошибок, которую я видел, — это отсутствие начальной звездочки.

решение2

Если вы проверитеруководство MySQLвы увидите, что можете использовать команду:

SET PASSWORD FOR username@'10.1.%' = 'hashed_password';

Связанный контент