解决:MySQL 报错:1045 - Access denied for user 'root'@'localhost'(using password YES)

1、前言

今年疯狂迷上了开源,只要看到好的开源项目,就会不顾一切一股脑扎进去研究,五一期间发现一个很好的关于众筹的开源项目,但不巧,这个项目居然是 PHP 写的,没学过 PHP,天然对这个开源项目毫无头绪了,但我居然为了这个项目,毅然决定入坑 PHP,因而就出事了...php

说时迟那时快, 2 小时入门 PHP,2 小时入门 ThinkPHP,鉴于我一直在研究 Java 的缘由,因此不费吹灰之力就顺利入坑。经过了解,PHP 开发必备环境是 PHP、Apache、MySQL以及一个好用的 IDE ,IDE 仍是很好找的,我选择了 JetBrains 的 PhpStorm,而其余环境就是集所有功能于一身的 WampServer 了,安装完准备建数据库建表,打开 Navicat ,错误开始...mysql

2、错误描述

MySQL 报错:1045- Access denied for user 'root'@'localhost'(using password YES)
复制代码

以下图所示:sql

3、错误缘由

安装了 WampServer 这个集 PHP 开发环境于一身的神器后,里面的 MySQL 网页管理软件 phpMyAdmin 使得数据库的 root 用户权限发生改变,也能够说是因为二者的密码不一致致使密码错乱有了这个错误(我本身理解),由于 phpMyAdmin 安装完成后的默认密码是空的。数据库

4、错误解决

直接充值密码便可解决数据这个报错问题。浏览器

首先,中止掉数据的运行,这个我相信你们均可以作到了,能够直接从管理服务程序中中止,也能够直接在 cmd 命令窗口输入命令 net stop mysql 来中止。缓存

而后进入 MySQL 的安装路径,找到并打开 my.ini 文件,找到 [mysqld] 字段,在这个字段下面增长下面这个语句:bash

skip_grant_tables
复制代码

紧接着重启数据库,这个我相信你们也能够作到了,能够直接在管理服务程序中开启,也能够直接在 cmd 命令窗口中输入命令 net start mysql 来开启,进而在命令窗口执行一下命令,重置密码:微信

update user set password=password("root") where user="root";
复制代码

固然,我是直接将密码重置为 root,反正这个密码你们自定义就好,不过要记住密码。ui

最后就是再次中止数据库的运行,返回前面提到的 my.ini 文件去掉 skip_grant_tables 字段后保存,再次重启数据库就能够成功解决这个 MySQL 的报错了。spa

5、问题继续

我在第四部完美的解决了命令窗口启动进入数据的这种报错,而后当我从新进入 Navicat 打开本地创建的链接的时候,继续报一样的错误,也就是说错误并无解决,很纳闷,为啥命令行能够顺利操做数据库不报错,进入 Navicat 客户端就报错呢?

折腾半天,发如今 root 权限错乱而重置密码以后,在 Navicat 中已经创建的链接是不可逆的。

折腾半天,发现解决办法也很简单,要么删除链接后从新建一个链接,固然,删除链接后并不会已经创建的数据库,要么重装 Navicat ,至于选哪种,自行选择,我都试过,均可以成功解决 Navicat 报这个错误。

6、问题再来

当本地的错误完美解决以后,我打开 phpMyAdmin 网页,居然报了一个与前面的错误很类似却又有异的错误,错误以下:

1045- Access denied for user 'root'@'localhost'(using password NO)
复制代码

当我把本地的 phpMyAdmin 配置文件中的密码也设置为 MySQL 数据库的密码后,打开后仍是继续报一样的错误,不断打开不断报错,又折腾半天,最后在 StackOverFlow 上找到了解决办法:直接清除浏览器的 Cookie 缓存就能够解决这个问题。也就是说,我本地的配置是没有任何错误的,而打开网页继续报错的缘由是以前报错时浏览器已经把 phpMyAdmin 的登陆密码缓存到了 Cookie之中。

好了,全部问题完美解决,特此记录。

解决完这个问题咱们明白,若是遇到某些错误精心想一想,而不是一股脑扎进错误之中研究错误,可能半小时就能够解决问题了,也不至于折腾一个半天后又折腾一个半天咯。

扫描二维码关注微信公众号,了解更多

相关文章
相关标签/搜索