一、前言

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

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

二、错误描述

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

如下图所示:

三、错误原因

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

四、错误解决

直接充值密码即可解决数据这个报错问题。

首先,停止掉数据的运行,这个我相信大家都可以做到了,可以直接从管理服务程序中停止,也可以直接在 cmd 命令窗口输入命令 net stop mysql 来停止。

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

skip_grant_tables

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

update user set password='root' where user='root'

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

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

五、问题继续

我在第四部完美的解决了命令窗口启动进入数据的这种报错,然后当我重新进入 Navicat 打开本地建立的连接的时候,继续报同样的错误,也就是说错误并没有解决,很纳闷,为啥命令行可以顺利操作数据库不报错,进入 Navicat 客户端就报错呢?

折腾半天,发现在 root 权限错乱而重置密码之后,在 Navicat 中已经建立的连接是不可逆的。

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

六、问题再来

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

1045- Access denied for user 'root'@'localhost'(using password NO)

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

好了,所有问题完美解决,特此记录。

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

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

-----------------------------------------------------------

解决:MySQL 报错:1045 - Access denied for user 'root'@'localhost'(using password YES)的更多相关文章

  1. 【linux】Centos下登陆mysql报错#1045 - Access denied for user 'root'@'localhost' (using password: NO)

    创建mysql  远程链接 grant all privileges on *.* to 'test'@"%" identified by "test666 with g ...

  2. 解决MySQL报错:Access denied for user ‘root’@‘localhost’(using password: YES)

    Windows 10(mysql5.1) 修改配置文件 找到MySQL安装目录下配置文件my.ini(在我的win10环境下,其路径为C:\ProgramData\MySQL\MySQL Server ...

  3. Win7环境下mysql报错1045:Access denied for user root@localhost错误解决方法

    产生场景:在涉及到连接数据库操作的时候,会报1045:Access denied for user root@localhost. 比如:本地建立的数据库连接不上,在IDEA等开发工具中使用反向生成. ...

  4. 远程连接Linux mysql报错:Access denied for user ‘root’@‘localhost’(using password: YES)的解决方法

    在新安装好的Centos7上刚安装好mysql,准备进去看看,但是登陆的时候,发现报错啦: ERROR 1045 (28000): Access denied for user 'root'@'loc ...

  5. idea 连接mysql报错:Access denied for user 'root'@'localhost'(using password:YES)。

    这两天在idea中开发Web项目时,连接MYSQL数据库,出现问题:Access denied for user 'root'@'localhost'(using password:YES).    ...

  6. 启动报错:Access denied for user 'root'@'localhost' (using password:YES)

    项目启动报错:Access denied for user 'root'@'localhost' (using password:YES) 原因:root帐户默认不开放远程访问权限,所以需要修改一下相 ...

  7. Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes

    Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes http://blog.csdn.n ...

  8. Mysql相关问题-----1045 Access denied for user 'root'@'localhost' (using password: YES)报错

    MySQL 连接错误,使用Navicat连接MySQL出现错误:1045 Access denied for user 'root'@'localhost' (using password: YES) ...

  9. windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes 解决方案

    win7 MySql5.6.17提示:1045 access denied for user 'root'@'localhost' using password yes 从网上找到的解决方法,以此博客 ...

  10. vue项目中连接MySQL时,报错ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password:YES)

    一.前言 我们前端很多时候在写vue项目的时候,会把后端的数据拿到本地来跑,在连接MySQL数据库的时候,可能出现一些问题,如: ER_ACCESS_DENIED_ERROR: Access deni ...

随机推荐

  1. [cacti]nginx+php+cacti+mysql+php-fpm 安装小记

    网上教程很多,但是nginx不太多,下面安装时候主要参考的篇文章: http://54im.com/linux/linux-cacti-cn-install.html http://www.tecmi ...

  2. Oracle使用游标删除所有用户数据表中的所有记录脚本

    应用场景:因为数据库中的数据涉及机密信息,希望一次性能删除掉所有数据,只保留数据表结构,供新项目开发程序用 测试结果:经查询已删除所有数据 存在问题:数据表如果存在外键的话下面脚本可能执行不成功,请自 ...

  3. Dynamics CRM 2015Online Update1 new feature之 通过业务规则清空字段的值

    自2013引入业务规则后很多的功能就不需要通过javascript来实现,业务人员直接通过配置就能解决.那随着版本的更新业务规则的功能也越来越强大,从之前很单纯的逻辑到后面的if..else,相信后面 ...

  4. 使用FMDB多线程访问数据库,及database is locked的问题

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 今天终于解决了多线程同时访问数据库时,报数据库锁定的问题,错误信息是: Unknown error finalizi ...

  5. 《java入门第一季》之UDP协议下的网络编程详解

    首先看一下UDP协议的图解: 可以看到,分为发送端和接收端程序. 直接上代码: 发送端程序: import java.io.IOException; import java.net.DatagramP ...

  6. 【IOS 开发】Object-C 运算符

    博客地址 : http://blog.csdn.net/shulianghan/article/details/41624613 1. 算术运算符 算术运算符 : 加(+), 减(-), 乘(*), ...

  7. AngularJS进阶(三十九)基于项目实战解析ng启动加载过程

    基于项目实战解析ng启动加载过程 前言 在AngularJS项目开发过程中,自己将遇到的问题进行了整理.回过头来总结一下angular的启动过程. 下面以实际项目为例进行简要讲解. 1.载入ng库 2 ...

  8. Linux常用的网络命令

    这些命令都是我在浏览网页的时候偶然看到的,但是不太完整,所以我就整理了一下,详见如下. 1.查看网络接口状态 ifconfig(interface configuration,接口配置),通常会加上- ...

  9. int*p[ ]与int(*p)[ ]的不同

    举例说明: 1)int* p[2] 是一个指向int型的指针数组,即:p是包含两个元素的指针数组,指针指向的是int型. 可以这样来用: #include <iostream> using ...

  10. android studio签名

    1.Build -> Generate Signed APK...,打开如下窗口 2.假设这里没有打过apk包,点击Create new,窗口如下 这里只要输入几个必要项 Key store p ...