MySQL8.17密码账号正确,报1045

博主在搭建后台过程中遇到Navicat连接MySQL8.17报错1045。通过修改my.ini配置,禁用权限系统并重启MySQL,然后在无密码状态下进入数据库,修改root用户host为localhost并重置为空密码。最后解除skip-grant-tables设置,重新设置复杂密码,成功解决了Navicat连接问题。
摘要由CSDN通过智能技术生成

今天是被MySQL8.17 和Navicat12 折磨

今天想搭个后台,在启动Navicat的时候突然连接不上报1045

接着就去doc 手动打开数据库,用密码进入看看,发现还是报1045,进不去,我以为是我密码记错了,就开始了重置密码的道路,一错再错。

MySQL8.17 重置密码

  1. 到MySQL安装目录,找到my.min文件,打开搜索sqld,在[mysqld] 后面加上skip-grant-tables,然后找到shared-memory去掉前面的注释。(这里相当于关掉的密码通道,不需要密码就可以进入MySQL)
  2. 管理员方式打开cmd,net stop MySQL,之后在net start MySQL.(意思是重启一下MySQL)
  3. 输入  mysql -u root -p    回车   不用输入密码,直接回车就可以进入.
  4. mysql>use mysql; (输入use mysql 回车)
  5. 查看user表;输入  select user,host,authentication_string from mysql.user; (MySQL8.17 的密码字段不是password,而是authentication_string)
  6. 如果root 对应的host 是localhost,那就大家欢喜,证明root有权限访问本地数据库。(我之前的不是localhost,所以即使密码改了,也一样无法连接数据库,报1045)
  7. 如果不是localhost,还能怎么办,改呗。语句 : update user set host='localhost' where user='root';  如果root有多个就+and host='对应你自己的host列数据';
  8. 然后先更改root的密码为空,update user set authentication_string='' where user='root' and host='localhost';
  9. 退出 quit;之后关掉My'SQL : net stop MySQL  ;关掉cmd窗口
  10. 回去MySQL刚刚更改的文件my.min,把skip-grant-tables注释掉,因为你已经有密码了,密码就是空
  11. 管理员打开cmd,打开My'SQL:net start MySQL
  12. mysql -u root -p  回车  不需要输密码,密码为空,直接回车,进入mysql
  13. 然后修改你想要的密码: ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’; (密码规则:要有大小写字母、特殊字符、数字,首位最好是字母,为什么要这样呢,因为MySQL8.17对爱情的加密方式就是这样,或者你可以改变你自己的加密方式,这又是另外的坑了)
  14. 可以出坑了,退出就可以去navicat连接mysql了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值