在MySQL数据库中,用户忘记密码或者密码过期是一个常见的问题,这种情况下,我们需要采取一些措施来解决这个问题,本文将介绍如何处理MySQL用户忘记密码及密码过期的问题。
忘记密码的处理方法
1、1 使用mysqladmin命令修改密码
mysqladmin是MySQL自带的一个用于管理MySQL服务器的工具,我们可以使用mysqladmin命令来修改用户的密码,具体操作步骤如下:
1、停止MySQL服务,在命令行中输入以下命令:
sudo service mysql stop
2、启动MySQL服务,跳过授权表,在命令行中输入以下命令:
sudo mysqld_safe --skip-grant-tables &
3、登录MySQL,在命令行中输入以下命令:
mysql -u root
4、选择mysql数据库,在MySQL命令行中输入以下命令:
use mysql;
5、修改用户密码,在MySQL命令行中输入以下命令,将your_username
替换为实际的用户名,将new_password
替换为新的密码:
update user set authentication_string=PASSWORD('new_password') where User='your_username';
6、刷新权限,在MySQL命令行中输入以下命令:
flush privileges;
7、退出MySQL,在MySQL命令行中输入以下命令:
exit;
8、停止MySQL服务,在命令行中输入以下命令:
sudo service mysql stop
9、重新启动MySQL服务,在命令行中输入以下命令:
sudo service mysql start
现在,你可以使用新的密码登录MySQL了。
1、2 使用SQL语句修改密码
除了使用mysqladmin命令外,我们还可以使用SQL语句来修改用户的密码,具体操作步骤如下:
1、停止MySQL服务,在命令行中输入以下命令:
sudo service mysql stop
2、启动MySQL服务,跳过授权表,在命令行中输入以下命令:
sudo mysqld_safe --skip-grant-tables &
3、登录MySQL,在命令行中输入以下命令:
mysql -u root -p
4、选择mysql数据库,在MySQL命令行中输入以下命令:
use mysql;
5、修改用户密码,在MySQL命令行中输入以下命令,将your_username
替换为实际的用户名,将new_password
替换为新的密码:
SET PASSWORD FOR 'your_username'@'localhost' = PASSWORD('new_password');
6、刷新权限,在MySQL命令行中输入以下命令:
flush privileges;
7、退出MySQL,在MySQL命令行中输入以下命令:
exit;
8、停止MySQL服务,在命令行中输入以下命令:
sudo service mysql stop
9、重新启动MySQL服务,在命令行中输入以下命令:
sudo service mysql start
现在,你可以使用新的密码登录MySQL了。
密码过期的处理方法
2、1 修改全局变量配置以禁用密码过期功能
MySQL有一个名为default_password_lifetime
的全局变量,用于设置用户的密码有效期,默认情况下,该值为0,表示不启用密码过期功能,我们可以通过修改这个变量的值来禁用密码过期功能,具体操作步骤如下:
1、登录MySQL,在命令行中输入以下命令:
mysql -u root -p -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; --execute="SET @@GLOBAL.default_password_lifetime = 0;" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; exit;" --login-path=local --local-infile=1 --user=root --host=localhost --port=3306 --socket=/var/run/mysqld/mysqld.sock --protocol=tcp --prompt="Enter password: " --execute="SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; --execute="SET @@GLOBAL.default_password_lifetime = 0;" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; exit;" --login-path=local --local-infile=1 --user=root --host=localhost --port=3306 --socket=/var/run/mysqld/mysqld.sock --protocol=tcp --prompt="Enter password: " --execute="SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; --execute="SET @@GLOBAL.default_password_lifetime = 0;" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; exit;" --login-path=local --local-infile=1 --user=root --host=localhost --port=3306 --socket=/var/run/mysqld/mysqld.sock --protocol=tcp --prompt="Enter password: " --execute="SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; --execute="SET @@GLOBAL.default_password_lifetime = 0;" --execute="SELECT @@GLOBAL.default_password_lifetime;" --skip-column-names; exit;" --login-path=local --local-infile=1 --user=root --host=localhost --port=3306 --socket=/var/run/mysqld/mysqld.sock --protocol=tcp --prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user=root--host=localhost--port=3306--socket=/var/run/mysqld/mysqld.sock--protocol=tcp--prompt="Enter password: "--login-path=local--local-infile=1--user
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/365365.html