【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案

大家好 我是寸铁
总结了一篇Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案的文章✨
喜欢的小伙伴可以点点关注

问题背景

今天在使用go-Zero 框架操作MySQL 实现增删改查时,进行API测试的时候报错如下:

在这里插入图片描述
具体如下:

Error 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

2024/2/4更新

寸铁的博客是结合问题实时更新的,便于大家可以及时吸取经验,提高开发效率!

解决方法

出现这个问题有两种解决方法:

  • 一种是如下教程进行无密码登录配置
  • 一种是再检查一遍配置文件yaml
    经过今天的测试,发现确实是我的yaml文件的MySQL登录密码配置不对。
    在这里插入图片描述

这里的密码是root 我设置的密码是123456
这就是Error 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)的一个原因
此外,在涉及外部工具测试API接口时,loc的值要设置为Local
详见这篇笔者的这篇文章,对yaml 文件的配置介绍得比较详细。


正确格式如下:

Mysql:
  DataSource: root:123456@tcp(127.0.0.1:3306)/zero_db?charset=utf8mb4&parseTime=True&loc=Local

小结

这是因为我本地登录数据库失败,密码不正确,没有设置loc的值为Local,而不是从外部进行测试时候,没有密码登录的权限造成!大家在配置时,一定要留意细节,如密码等等。当然,这是一次非常宝贵的经验!

测试API

再进行API的测试后,可以实现对MySQL的增删改查

  • 先插入一条数据
    【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第1张图片

  • 在后台查看是否执行插入的sql语句,确实是执行了!
    在这里插入图片描述

  • 查询一下是否插入成功,插入数据库成功!
    【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第2张图片

  • 再进行查询操作,查询成功!
    【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第3张图片

测试工具为API-fox


排查

其实就是MySQL 设置是否输入密码
这时需要我们手动修改Mysqlini配置文件,没有文件管理员权限可以看这篇文章

修改ini配置文件

Step1
  • 首先,找到MySQLmy.ini 配置文件,如果实在不知道放在哪里,建议使用Everything 全局搜索,一般是放在如下路径:
C:\ProgramData\MySQL\MySQL Server 8.0

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第4张图片


  • 接着,右击文件,点击打开路径

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第5张图片


Step2

进入指定路径的文件夹后,注意要打开隐藏的项目文件,具体如下:

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第6张图片

Step3

双击打开my.ini 文件,具体操作如下图:

  • 先ctrl + A全局搜索mysqlId
  • 找到[mysqlId]的位置
  • 在该位置后方添加如下语句
skip-grant-tables

作用:跳过当前所有的表格,不用密码登录。


【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第7张图片

最后,记得ctrl+s保存再关闭


重新启动MySQL

出现如下提示:

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第8张图片


这里首先需要配置一下环境变量 , 默认大家已经配置完毕。

接下来就是使用管理员身份启动命令行窗口
并输入如下代码:

mysqld -- install

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第9张图片

显示成功安装!


注意:要重新启动mysql ,在mysql中使用的是先关闭再开启的操作。

  • 先关闭
net stop mysql

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第10张图片

出现这个说明没有启动任何MySQL服务

  • 再启动
net start mysql

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第11张图片


出现这种情况,需要去服务中进行MySQL的手动停止和暂停!

  • 首先,按住win + R【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第12张图片

  • 接着,输入如下指令回车,打开计算机的服务窗口
services.msc

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第13张图片


  • 找到MySQL80 (这里的数字是版本号无太大关系)
    先点击停止
    【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第14张图片

再点击启动
【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错解决方案_第15张图片


之后再重新打开一个cmd 窗口
输入如下命令:

mysql -u root -p

一般的机器走到这里应该是可以无密码登录


个别情况

由于不同的机器,存在的情况可能不同。
笔者这里尝试了很多次,最后还是无法完全实现无密码登录。
按照上面的流程走后,回车,无输入密码登录,但是会报如下错误:

ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)

把配置文件改回原来的样子,输入原来设置的密码,又可以登录

试过多篇博客去操作该问题,如果你和寸铁一样!
最省时的办法是重装,暂时没有比重装更好的办法!

结语

建议大家装MySQL时不要设置密码!
除非是真的出于安全性考虑,一般来说,学习用的不用设置密码。


看到这里的小伙伴,恭喜你又掌握了一个技能
希望大家能取得胜利,坚持就是胜利
我是寸铁!我们下期再见


往期好文

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【保姆级教程】Windows11安装go-zero代码生成工具goctl、protoc、go-zero

【Go面试向】defer与time.sleep初探

【Go面试向】defer与return的执行顺序初探

【Go面试向】Go程序的执行顺序

【Go面试向】rune和byte类型的认识与使用

【Go面试向】实现map稳定的有序遍历的方式

你可能感兴趣的:(go,golang,go-zero,mysql,权限,增删改查)