На сервере 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';