Mysql 忘记密码怎么重置密码(详细步骤)
每种方法都有其适用的情况,根据具体情况选择合适的方法。无论选择哪种方法,请务必在重置密码后及时删除临时用户并重新启动 MySQL
服务。
一、使用 mysqladmin
重置密码
-
停止服务
# systemctl 启动的使用这个停止$ sudo systemctl stop mysql# mac 本机,可以使用这个或可视化界面停止$ sudo mysql.server stop
-
使用
mysqld_safe
命令启动MySQL
服务,跳过权限检查,执行后可能需要回车下$ sudo mysqld_safe --skip-grant-tables &
-
登录
MySQL
服务,并使用mysqladmin
命令重置密码# 无需密码,会直接登入$ mysql -u root # 刷新权限mysql> FLUSH PRIVILEGES; # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';# 修改好后退出 MySQLmysql> exit
-
停止
MySQL
服务,并重新启动密码登入即可# 1、停止 MySQL 服务上面有,第一条就是# 2、重启启动 MySQL 服务,并使用密码登入# systemctl 启动的使用这个重新启动$ sudo systemctl start mysql# mac 本机,可以使用这个或可视化界面启动$ sudo mysql.server start# 3、密码登录$ mysql -u root -p# 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
二、使用 mysqld
重置密码
-
停止服务
# systemctl 启动的使用这个停止$ sudo systemctl stop mysql# mac 本机,可以使用这个或可视化界面停止$ sudo mysql.server stop
-
使用
mysqld_safe
命令启动MySQL
服务,跳过权限检查,执行后需要回车下$ sudo mysqld_safe --skip-grant-tables &
-
登录
MySQL
服务,并创建新的临时用户,拥有root
权限# 无需密码,会直接登入$ mysql -u root # 刷新权限mysql> FLUSH PRIVILEGES; # 创建一个临时用户 temp_root 及 temp_passwordmysql> CREATE USER 'temp_root'@'localhost' IDENTIFIED BY 'temp_password'; # 设置权限mysql> GRANT ALL PRIVILEGES ON *.* TO 'temp_root'@'localhost' WITH GRANT OPTION;# 修改好后退出 MySQLmysql> exit
-
停止
MySQL
服务,并重新启动密码登入,并使用ALTER
命令修改root
用户密码# 1、停止 MySQL 服务上面有,第一条就是# 2、重启启动 MySQL 服务,并使用密码登入# systemctl 启动的使用这个重新启动$ sudo systemctl start mysql# mac 本机,可以使用这个或可视化界面启动$ sudo mysql.server start# 3、临时用户密码登录$ mysql -u temp_root -p# 4、这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';# 5、修改好后退出 MySQLmysql> exit# 6、停止 MySQL 服务上面有,第一条就是# 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
-
再次使用
mysqld_safe
命令启动MySQL
服务,跳过权限检查,删除临时用户$ sudo mysqld_safe --skip-grant-tables & $ mysql -u root mysql> FLUSH PRIVILEGES; mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'temp_root'@'localhost'; mysql> DROP USER 'temp_root'@'localhost'; mysql> exit
-
再次重启
MySQL
服务,并使用修改好的root
密码登入# 1、停止 MySQL 服务上面有,第一条就是# 2、重启启动 MySQL 服务,并使用密码登入# systemctl 启动的使用这个重新启动$ sudo systemctl start mysql# mac 本机,可以使用这个或可视化界面启动$ sudo mysql.server start# 3、密码登录$ mysql -u root -p
三、使用 MySQL
安全性模式重置密码
-
停止服务
# systemctl 启动的使用这个停止$ sudo systemctl stop mysql# mac 本机,可以使用这个或可视化界面停止$ sudo mysql.server stop
-
启动
MySQL
安全性模式$ sudo mysqld_safe --skip-grant-tables --skip-networking &
-
登录
MySQL
服务,并使用mysqladmin
命令重置密码# 无需密码,会直接登入$ mysql -u root mysql> FLUSH PRIVILEGES; # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';# 修改好后退出 MySQLmysql> exit
-
停止
MySQL
安全性模式$ sudo killall mysqld_safe# 如果在本地机器上执行上面命令无法停止安全模式,可以通过杀死进程方式解决# 1、列出 mysqld_safe 的进程$ ps aux | grep mysqld_safe# 2、拿到 PID 全部杀死,应该是第二列,就几位纯数字的,如果不知道可以单独输出 $ ps aux 看一下。$ sudo kill -9 xxx xxx ...
-
停止
MySQL
服务,并重新启动密码登入即可# 1、停止 MySQL 服务上面有,第一条就是,如果通过 $ sudo kill 可以一起就杀死了。# 2、重启启动 MySQL 服务,并使用密码登入# systemctl 启动的使用这个重新启动$ sudo systemctl start mysql# mac 本机,可以使用这个或可视化界面启动$ sudo mysql.server start# 3、密码登录$ mysql -u root -p# 附:如果再次使用 mysql -u root 这样免密登录是不成功的,停止重启后会失效。
四、使用 my.cnf
重置密码
-
该方式跟上面
方式一
基本一致,只是将命令中的跳过权限指令写到my.cnf
中,修改好后再移除。 -
在修改
my.cnf
之前一定要关闭mysql
进程,关闭mysql
,不然可能会遇到mysql
的sock
不能连接的问题! -
停止服务
# systemctl 启动的使用这个停止$ sudo systemctl stop mysql# mac 本机,可以使用这个或可视化界面停止$ sudo mysql.server stop
-
打开
my.cnf
,没有则创建一个$ sudo vim /etc/my.cnf
进入
vim
编辑器编辑之后,找到[mysqld]
,按键盘的i
键进入编辑模式,在[mysqld]
后面任意一行添加skip-grant-tables
用来跳过密码验证的过程。按ESC
退出编辑,键入:wq
,回车即保存并退出。[mysqld]skip-grant-tables
-
启动
mysqld
服务# systemctl 启动的使用这个重新启动$ sudo systemctl start mysql# mac 本机,可以使用这个或可视化界面启动$ sudo mysql.server start
-
登录
MySQL
服务,并使用mysqladmin
命令重置密码# 无需密码,会直接登入$ mysql -u root # 这里的 'new_password' 是要设置的新密码,可以根据需要进行修改。此命令将修改 root 用户在本地 MySQL 服务上的密码。mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';# 刷新权限mysql> FLUSH PRIVILEGES; # 修改好后退出 MySQLmysql> exit
-
再次打开
my.cnf
,移除刚才添加的skip-grant-tables
,保存重启MySQL
服务,并使用新的密码登入。
来源地址:https://blog.csdn.net/zz00008888/article/details/131935462
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341