MySQL8.0忘记root密码解决方法_MySQL 5.7和8.0版本忘记root密码的解决方法

MySQL 5.7和8.0版本忘记root密码的解决方法

发布时间:2020-06-17 15:27:52

来源:亿速云

阅读:104

作者:元一

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

1、遗忘MySQL 5.7数据库的root密码解决办法

方法1(推荐):[root@mysql ~]# systemctl stop mysqld        #停止MySQL服务

[root@mysql ~]# mysqld --user=root --skip-grant-tables    #使用mysqld指令启动mysql服务,跳过授权表

#上述命令执行后,会一直占用当前终端,需要再开启一个终端,

#也不要想着放到后台运行了,放到后台3306端口不会监听的

[root@mysql ~]# ss -anpt | grep 3306     #再开启一个终端,确定端口在监听

LISTEN     0      80          :::3306                    :::*                   users:(("mysqld",pid=8282,fd=33))

[root@mysql ~]# mysql -uroot           #直接使用root用户登录,无需密码

mysql> update mysql.user set authentication_string=password('1234')

-> where User='root' and Host='localhost';

#更改root密码为“1234”

mysql> flush privileges;          #刷新权限

[root@mysql ~]# kill 8282         #将之前mysqld启动时占用的终端进程号kill掉,切忌不要使用-9选项

[root@mysql ~]# systemctl start mysqld      #启动MySQL服务,使用新密码登录即可

如果上面的过程中,使用kill -9来结束mysqld占用的终端,那么再次启动可能会报错,sock文件被锁定,此时,需要将你mysql的sock文件删除掉,我这里的sock文件在/tmp下,分别时mysql.sock.lock和mysql.sock这两个文件,删除后再次启动MySQL即可。

方法2:[root@mysql01 ~]# mysql --version        #确定MySQL版本

mysql  Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using  EditLine wrapper

[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件

[mysqld]      #在mysqld这行下写入下面内容

skip-grant-tables

.................#省略部分内容

[root@mysql01 ~]# systemctl restart mysqld      #重启MySQL服务,使配置文件生效

[root@mysql01 ~]# mysql -uroot           #跳过密码验证,直接登录数据库

#修改root密码为pwd@123,并刷新权限

mysql> use mysql;

mysql> update user set authentication_string = passwoord('pwd@123') where user = 'root';

mysql> flush privileges;     #刷新权限

mysql> exit

#配置密码验证,使用新密码登录

[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件

[mysqld]

skip-grant-tables            #删除此行

[root@mysql01 ~]# systemctl restart mysqld          #重启使更改生效

#使用新密码即可成功登录

[root@mysql01 ~]# mysql -uroot -ppwd@123

2、遗忘MySQL 8.0数据库的root密码解决办法[root@mysql01 ~]# mysql --version        #查看MySQL版本

mysql  Ver 8.0.18 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)

[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件

[mysqld]      #在mysqld这行下写入下面内容

skip-grant-tables

.................#省略部分内容

[root@mysql01 ~]# systemctl restart mysqld      #重启MySQL服务,使配置文件生效

[root@mysql01 ~]# mysql -uroot           #跳过密码验证,直接登录数据库

#将root密码设置为空

mysql> use mysql

mysql> update user set authentication_string='' where user = 'root';

mysql> flush privileges;

mysql> exit

#开启密码验证并重新登录数据库

[root@mysql01 ~]# vim /etc/my.cnf         #编辑主配置文件

[mysqld]

skip-grant-tables            #删除此行

[root@mysql01 ~]# systemctl restart mysqld          #重启使更改生效

[root@mysql01 ~]# mysql -uroot            #直接登录数据库

mysql> alter user root@localhost identified by 'pwd@111';

mysql> flush privileges;

mysql> exit

#使用新密码进行登录测试

[root@mysql01 ~]# mysql -uroot -ppwd@111

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值