mysql 8.0版本及其高版本修改默认密码

mysql 8.0版本及其高版本修改默认密码

新安装的mysql,在输入默认密码时,会报1045错误:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)
为了解决这个问题,我查阅了很多资料,但是都没能解决问题,后面偿尝试很多次后,终于找到了解决办法。这个倒不是说其他的帖子不对,是因为每个人安装的环境不一样,就导致解决办法不一样,好了废话不多说,直接进入正题
一、我的安装环境
操作系统: CentOS Linux release 7.6.1810
mysql版本:mysql-8.0.20-el7-x86_64.tar.gz
二、安装过程就不多做表述,直接从安装完成后开始。
1、修改mysql配置文件:my.cnf,如果是Windows系统,请自行百度。
vi/etc/my.cnf
在[mysqld]下面加上一行 skip-grant-tables 。这个语句的作用就是跳过root密码登录,虽然跳过,但权限是收到限制的,这不展开讲。只是强调下,如果有这个语句在,Mysql是不能外网访问的,3306端口也是关闭的,这个要注意。
封
保存退出
2、重启mysql
我的版本重启命令是: systemctl restart mysql,用适合自己linux版本的重启命令进行重启。我的
3、登录mysql
mysql -uroot -p
这个时候不用输入密码 ,直接回车,就可以登录mysql
鈴
4、选择数据库
use mysql
在这里插入图片描述
5、执行查询语句,看下数据库的用户
select user,host, plugin from user;
一定要注意符号要英语输入法下进行输入,语句结束都是分号
在这里插入图片描述
查询出来的结果,在host处,可能出现两种情况,一种是‘%’,还有一种是‘localhost’。这个要注意区分,简单理解就是:允许用户登录的 ip 位置,’%’表示可以远程;如果是‘localhost’,表示本地登录。user:登录数据库用户名,这个地方我是root,当然也可以是其他用户名,不要刻舟求剑,以自己的用户名为准。
6、重置密码为空
这步是关键,因为没有这步,很可能无法重置密码
update user set host=’%’,plugin=‘mysql_native_password’,authentication_string="" where user=“root”;
注意:host处,根据上面查出来的实际情况而定,如果是‘%’,则是host=’%’;如果是‘localhost’,则是host=‘localhost’另外,密码是和用户那个地方是“”双引号,不是单引号****
在这里插入图片描述
如果执行报错,ERROR 1064 ,检查下符号,如果都无误,先执行下 flush privileges;再执行这个重置密码语句。
7、退出登录
quit;
在这里插入图片描述
8、重新进入my.cnf文件,将skip-grant-tables注释掉或是删除。
9、重启mysql,并登录
这时候,直接回车,因为密码已经被重置为空了。
10、执行重置密码语句
alter user’root’@’%’ IDENTIFIED BY ‘MyNewPa@123’;
注意这个语句和低版本的mysql的区别,不要套用。另外,8.0版本以上,密码策略有要求,必须是大写、小写、特殊字符以及数字混合。如果达不到要求,执行语句时,会报错
ERROR 1819 (HY000): Your password does notsatisfy the current policy requirements。
笙
11、执行成功后,退出。
12、再次进入时,就需要输入重置后的密码了。
以上就是小编解决问题的过程,分享出来,希望帮助更多的人解决问题。能解决这个问题还要感谢一个人,在无意的聊天中解决的,欢迎大家留言交流,不对的地方请指正,如果要转载,请注明原地址,谢谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值