前言
在学习数据库的过程中,总有些奇奇怪怪的问题出现,比如前两天用得好好的,当天一用就崩,真的被崩的一脸懵逼。只能上百度搜索解决方法,百度了好几天,发现很多方法都不怎么适用,有些只能用一半,所以索性自己就总结出那些有用的,前人种树后人乘凉嘛,偶尔当一下前人也是不错的 🍉 🍉 🍉。
只希望减少大家搜索时间,比较时间就是金钱 👍 👍 👍。如果文章有什么需要改进的地方还请大佬不吝赐教。👏 👏 👏
一、本人配置:系统64位win10,MySQL8.0.16
错误 :ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
二、原因分析
从上面这段英文的意思来看,可以这样分析:
- 第一:Access denied(拒绝访问);
- 第二:using password:NO/YES。这里这个using password 的是是否输入了密码,输入了就表示YES,没有就输出NO。
根据网上查了很多资料,出现Access denied的原因有如下可能:
- MySQL的服务器停止了
- 用户的端口号或者IP导致拒绝访问
- MySQL的配置文件错误(my.ini等文件)
- root用户的密码错误
三、解决方案
- Step 1 :重启MySQL服务器:net start mysql
- Step 2 :若用户的端口号与
IP(3306/3307)
不一致,打开my.ini
文件进行编辑。全部编辑替换为: port=X - Step 3 :若my.ini文件配置错误,可以参考以下文章,该文件已对
my.ini
文件进行了解释和注释。文章链接. - Step 4 :密码错误的话,这里有两种解决方法
1.方案一
第一种:打之前安装MySQL的路径下 data
文件。然后用记事本打开以 .err
为后缀的文件。
这里 err
文件里会保留之前建立数据库时保留下来的密码,当然有时候因为缓存刷新问题把密码给覆盖了。
注:知道密码之后再重新登录就可以了。若在err文件找不到密码或者还是登录错误的话,可以试一下第二种方法。
2.方案二
第二种:用 --init-file
参数在服务启动时加载并运行修改密码的命令文件,该命令一旦执行,服务启动后密码即已经清除或者重置,启动服务后即可以空密码或指定密码登入。
- Step 1 :先关掉服务器:
- Step 2 :创建一个
txt
文本文件,命名为mysqlc
,然后在文本里编写一条修改密码的命令。我是在安装MySQL的目录下创建的。
- Step 3 :命令行方式启动服务器,指定启动时执行上述的密码修改命令文件。
mysqld --init-file=Q:\MySQL\mysql-8.0.16-winx64\mysqlc.txt --console
注意:这里执行 Step 3 一定要先确认Mysql 服务是关闭的状态。
- Step 4 :接着重启服务器:
- Step 5 :然后用刚刚改过的密码输入就可以了。
以上本人所用到的解决方法了,希望能帮到大家,谢谢各位赏脸观看。