8.0.15版mysql增強了密碼安全性,會將用戶密碼加密后存儲。但有時候我們需要獲取原始密碼,該怎么辦呢?下面介紹兩種方法。
方法一:使用ALTER USER重新設置密碼
ALTER USER 'username'@'localhost' IDENTIFIED BY 'password';
這樣做會將用戶密碼重新設置為明文,但需要注意的是,如果你使用的是mysql_native_password插件,重新設置密碼的同時也會將插件切換回mysql_old_password插件,這會導致一些不兼容問題。
方法二:使用--skip-grant-tables
mysqld --skip-grant-tables & mysql -u root -p mysql>UPDATE mysql.user SET authentication_string=PASSWORD('your_new_password') WHERE User='username' AND Host='localhost'; mysql>FLUSH PRIVILEGES; mysql>quit
這個方法需要重啟mysqld進程,修改了mysql.user表中的authentication_string字段,然后再通過FLUSH PRIVILEGES命令刷新權限,最后退出mysql客戶端即可。
以上兩種方法均可以獲取原始密碼。需要注意的是,密碼泄露可能會導致嚴重的安全問題,因此在平時的使用過程中應該盡量避免原始密碼的使用,并合理設置權限。