mysql8忘记root_【Mysql8】忘记数据库root密码的情况下,如何进入mysql?

自从安装了mysql8之后,强制设置很复杂的密码,导致root密码非常容易忘记,那么如何在忘记数据root账号密码的情况下进入root呢?

首先确保自己有系统的root权限,可以进行sudo操作!

首先确保自己有系统的root权限,可以进行sudo操作!

首先确保自己有系统的root权限,可以进行sudo操作!

修改mysql配置

打开mysql的配置文件:

sudo vim /etc/my.cnf

在配置文件中,最末尾添加skip-grant-tables这一行,让mysql可以免密码登录:

....

pid-file=/var/run/mysqld/mysqld.pid

skip-grant-tables

保存退出。

重启mysql服务

有两种重启服务的方法:

直接运行sudo service mysqld restart,输入密码后,就重启了。

如果第一种方法失败,那么找到所有mysql的进程,依次kill掉,再启动,命令如下:

ps -ef | grep mysql | awk '{print $2}' | xargs kill -9

sudo service mysqld start

PS:如果启动不了,就根据报错上网查一查,确保自己配置文件是对的,不要写错了。

登录mysql并删除root密码

直接输入如下命令,再直接回车,即可使用root用户进入数据库:

mysql -u root -p

先查看一下root用户是否存在密码:

mysql> use mysql;

mysql> select host, user, authentication_string, plugin from user;

查看表格中root用户的authentication_string字段是否为空,如果不为空,则修改为空:

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

Query OK, 1 row affected (0.02 sec)

Rows matched: 1 Changed: 1 Warnings: 0

修改成功后,退出mysql。

接着修改mysql配置文件/etc/my.cnf,把刚才加的skip-grant-tables删掉,并使用命令sudo service mysqld restart重启mysql服务。

接着,由于刚才删除了root密码,所以这时候就可以使用root用户登录而且不需要密码了:

mysql -u root -p

直接回车就可以进去数据库了。

修改数据库的root密码

在修改密码之前,可以先看一下mysql8密码政策。

默认的MEDIUM级别的,需要密码里面有数字、大小写字母和特殊字符,且长度不小于8。

作为开发人员,开发环境当然是越简单越好,所以需要修改安全策略。

修改mysql8的密码安全策略

使用root权限进入数据库之后,先查看一下跟密码有关的几个环境变量:

mysql> SHOW VARIABLES LIKE 'validate_password.%';

+--------------------------------------+--------+

| Variable_name | Value |

+--------------------------------------+--------+

| validate_password.check_user_name | ON |

| validate_password.dictionary_file | |

| validate_password.length | 8 |

| validate_password.mixed_case_count | 1 |

| validate_password.number_count | 1 |

| validate_password.policy | MEDIUM |

| validate_password.special_char_count | 1 |

+--------------------------------------+--------+

看到默认的密码安全级别是MEDIUM,我们改为LOW:

mysql> set global validate_password.policy=LOW;

Query OK, 0 rows affected (0.00 sec)

LOW的策略只有长度要求,就是不小于8。

修改密码

可以愉快的修改密码了:

mysql> flush privileges;

Query OK, 0 rows affected (0.05 sec)

mysql>alter user 'root' identified by 'root1234';

Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;

至此,root密码就修改完成了!不得不说mysql8,修改root密码可以说是非常麻烦了!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值