在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';