您当前的位置: 首页 >  sql

liaowenxiong

暂无认证

  • 0浏览

    0关注

    1171博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

liaowenxiong 发布时间:2021-10-07 16:43:51 ,浏览量:0

文章目录
  • 方法一
  • 方法二
  • 方法三

方法一

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 进程关闭,再重新以正常方式启动数据库服务,输入账号和密码登录数据库。

关注
打赏
1661566967
查看更多评论
立即登录/注册

微信扫码登录

0.0399s