Linux系统下MySQL数据库的超级管理员root的密码忘记/忘记密码怎么办?

当遗忘MySQL的root密码时,可以通过修改配置文件或启动参数来跳过权限检查,然后登录并修改密码。本文详细介绍了三种方法:修改my.cnf文件、使用mysqld_safe和直接启动mysqld。每种方法都包括停止服务、启用权限跳过、修改密码和还原配置的步骤,适用于不同环境,如CentOS 8.2.2004上的MySQL 8.0.26。
摘要由CSDN通过智能技术生成

方法一

1.添加登录跳过权限检查配置
修改 /etc/my.cnf 文件,在 [mysqld] 配置节点添加 skip-grant-tables 配置

[mysqld]
skip-grant-tables

2.重新启动mysql服务

service mysqld restart

3.修改密码
添加登录跳过权限检查配置后,在终端用 mysql 命令登录时不需要用户密码,然后选择三种修改密码的方式中的任意一种修改密码即可。

注意:mysql 库的 user 表,MySQL 5.7 以下版本密码字段为 password,MySQL 5.7 以上版本密码字段为 authentication_string

4.还原登录权限跳过检查配置
/etc/my.cnf[mysqld] 节点的 skip-grant-tables 配置删除,然后重新启动服务即可。

特别注意:MySQL的配置文件/etc/my.cnf中配置skip-grant-tables,会导致无法远程登录数据库,所以修改好密码之后,必须将skip-grant-tables注释掉。

方法二

停止数据库服务:

[root@htlwk0001host ~]# systemctl stop mysqld.service

进入到 MySQL 的 bin 目录下:

cd /usr/local/mysql/bin/

切换成 root 用户身份:

sudo su

切换成功后输入以下命令来禁止 MySQL 验证功能:

./mysqld_safe --skip-grant-tables &

回车后 MySQL 会自动重启,那么在当前会话中可以无需密码登录 MySQL。

然后选择三种修改密码的方式中的任意一种修改密码即可。

我的操作系统是:CentOS Linux release 8.2.2004 (Core) ,MySQL版本是:mysql Ver 8.0.26 for Linux on x86_64 (Source distribution),MySQL命令目录是:/usr/bin/,在该目录下没有指令mysqld_safe。

方法三

先停止数据库服务:

[root@htlwk0001host ~]# systemctl stop mysqld.service

接着以“无需验证”方式启动数据库服务:

[root@htlwk0001host ~]# mysqld --skip-grant-tables

然后再打开另一个会话窗口,直接输入 mysql 就可以登录了:

[root@htlwk0001host ~]# mysql

然后选择三种修改密码的方式中的任意一种修改密码即可。

修改完密码之后,要关闭 mysqld 进程,macOS 就打开活动监视器,Windows 就打开任务管理器,将 mysqld 进程关闭,再重新以正常方式启动数据库服务,输入账号和密码登录数据库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值