MySQL 8.0.16 Community Server 密码错误重置处理

mysql版本:Server version: 8.0.16 MySQL Community Server

错误提示:

# 登录mysql,输入密码后

mysql -u root -p

mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

提示需要密码验证,访问拒绝,密码错误,正确密码未知,需重置密码。

解决办法:

# 默认情况下,mysql安装后,如果密码为空,会自动创建随机密码

# 如果密码错误,无法登录,打开my.ini的将skip-grant-tables放开,linux环境下是/etc/my.cnf,表示无认证登录

mysql -u root -p

# 查看mysql日志文件所在文件置,在error log中,有为root用户随机生成了一个密码

select @@log_error;

# 通过grep命令找到随机密码

grep "password" /var/log/mysqld.log

2019-06-29T14:00:02.600036Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Se4%Fa3r5_rP

# 登录,用该密码登录到服务端后,必须马上修改密码

mysql -u root -pSe4%Fa3r5_rP

#(或者,直接跳过上述方式,直接修改密码)

# 进入mysql

use mysql;

# 查看user信息

select host,user,authentication_string from user;

# 如果当前root用户authentication_string字段下有内容,先将其设置为空

update user set authentication_string='' where user='root'

# 密码要包含大写字母,小写字母,数字,特殊符号

ALTER user 'root'@'localhost' IDENTIFIED BY 'Db_user_2019#'

#改完后退出,再登录即可

mysql -u root -pDb_user_2019#

注意:在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

修改成功后,再次到my.ini文件中的将skip-grant-tables注释,开启认证登录,重启mysql服务;

 

navicat无法连接到mysql

修改密码后,navicat无法连接到mysql,账号密码都正确,连接报错1251,就连项目程序中也无法连接到mysql数据库。

在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[新密码]');但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

需要再次修改一次root密码。

解决办法:

# 登录进入mysql环境

mysql -u root -pDb_user_2019#

# 定位到mysql数据库

use mysql;

# 重新修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Db_user_2019#';

# 刷新权限

FLUSH PRIVILEGES;

 

 

 

转载于:https://my.oschina.net/u/437309/blog/3071387

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值