当前位置:   article > 正文

MySQL8.0版本修改root密码_mysql8.0修改root密码

mysql8.0修改root密码

1 背景

有时候我们需要修改MySQL的root用户密码,方便我们后续的登录操作,但是应该怎么修改呢?接下来我们一起操作一下。

首先我们要知道MySQL8.0版本已经和之前版本不太一样,比如说8.0版本移除了password字段,添加了authentication_string字段,我们修改密码就是在这个字段进行。

2 登录root用户

这时候有两种情况,一种情况是知道root用户密码,直接登录即可;另一种情况就是不知道root用户密码,那么我们需要在my.cnf配置文件中添加skip-grant-tables命令,具体操作看我之前的博客,链接如下:

(10条消息) Linux中mysql忘记密码,想通过my.cnf修改,但是my.cnf文件找不到_蔷薇尖的风的博客-CSDN博客

3 密码修改

我们知道8.0之前的版本,都是这样子修改密码的:

use mysql; 
update user set authentication_string = password(“root”) where user = “root”;

你会发现系统一直提示输入的语法有问题,是因为8.0版本已经废弃了password函数,那么我们可以这样子修改吗?

update user set authentication_string = ‘新密码’ where user = “root”;

flush privileges;

不可以。你会发现,修改之后,根本没办法使用‘新密码’登录root用户,这是因为authentication_string字段下只能是mysql加密后的41位字符串密码,所以我们可以这样子进行修改:

alter user 'root'@'localhost' identified by 'newpassword';

或者

alter user 'root'@'%' identified by 'newpassword';

localhost或%取决于你对root用户设置的登录权限,localhost表示只能本机登录root用户,%表示可以使用其他机器远程登录root用户。

值得注意的是,新密码不能太简单,8.0的密码规则是不少于8位,且含有小写字母、数字、大写字母、特殊字符,所以你可以这样子设置:

alter user 'root'@'localhost' identified by 'Root123@#';

执行这个语句的时候,可能会出现这个问题:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

你只需要执行这步:

flush privileges;

再重新修改密码即可:

alter user 'root'@'localhost' identified by 'Root123@#';

设置好之后,记得刷盘,进行持久化操作:

flush privileges;

之后,退出

exit

或者

quit

4 重启MySQL

我们把my.cnf里面刚刚添加的内容注释掉:

[mysqld]
skip-grant-tables

变成

#[mysqld]
#skip-grant-tables

然后再重启MySQL:

service mysql restart

5 登录root

使用命令:

mysql -uroot -p

再输入密码。

最后大功告成。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/310244?site
推荐阅读
相关标签
  

闽ICP备14008679号