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 -pmysql>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客户端即可。
以上两种方法均可以获取原始密码。需要注意的是,密码泄露可能会导致严重的安全问题,因此在平时的使用过程中应该尽量避免原始密码的使用,并合理设置权限。