文档章节

ERROR 1045 (28000): Access denied

秋风醉了
 秋风醉了
发布于 2015/02/12 18:28
字数 648
阅读 159
收藏 0

ERROR 1045 (28000): Access denied for user 'user'@'host' (using password: YES)


连接mysql报错:

C:\Users\Lenovo>mysql -h 115.29.221.104 -u root -p
Enter password: **********
ERROR 1045 (28000): Access denied for user 'root'@'218.205.187.58' (using password: YES)

还有类似的这样的错误,

C:\Users\Lenovo>mysql -h 115.29.221.104 -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'218.205.187.58' (using password: NO)

下面这个是没有使用密码,如果没有密码的话,当然不允许连接。上面那个情况就是输入了密码,但是密码出错了。

但是我明明就是这个密码为什么出错呢?(其实是你的密码真的错了)。

首先你确保你密码没错,远程连接数据库总是出现ERROR 1045 (28000): Access denied,为什么,下面来进一步分析。


往往会是这种情况,你在远程服务器上直接连接不会出错,而在本地连接远程服务器就会出错。就是这个错误,

C:\Users\Lenovo>mysql -h 115.29.221.104 -u root -p
Enter password: **********
ERROR 1045 (28000): Access denied for  user 'root'@'218.205.187.58' (using password: YES)

而在115.29.221.104上就用相同的用户名和密码就可以连接。为什么?

首先来看mysql库user表如下,

mysql> select user,host from user;
+------------------+----------------+
| user             | host           |
+------------------+----------------+
| root             | %              |
| root             | 127.0.0.1      |
| root             | 218.205.187.58 |
| root             | ::1            |
| root             | backup         |
| debian-sys-maint | localhost      |
| root             | localhost      |
+------------------+----------------+
7 rows in set (0.00 sec)

没什么异常的,在看如下查询,

mysql> select user,host,password
    -> from user;
+------------------+----------------+-------------------------------------------+
| user             | host           | password                                  |
+------------------+----------------+-------------------------------------------+
| root             | localhost      | *31B38457C12D1E7B0533C3456109E38BAC97CFD5 |
| root             | backup         | *31B38457C12D1E7B0533C3456109E38BAC97CFD5 |
| root             | 127.0.0.1      | *31B38457C12D1E7B0533C3456109E38BAC97CFD5 |
| root             | ::1            | *31B38457C12D1E7B0533C3456109E38BAC97CFD5 |
| debian-sys-maint | localhost      | *6124B487491BC901CF8A8978AFD5A61516D57B5A |
| root             | 218.205.187.58 | *09D87193377D387DCADE6841D46095002B222934 |
| root             | %              | *31B38457C12D1E7B0533C3456109E38BAC97CFD5 |
+------------------+----------------+-------------------------------------------+
7 rows in set (0.00 sec)

有了以上两个查询的数据,我们来讨论一下,

首先我在本地机器登陆,如下,

C:\Users\Lenovo>mysql -h 115.29.221.104 -u root -p
Enter password: **********

我机器IP为218.205.187.58,能匹配到的是这两条,

| root             | 218.205.187.58 | *09D87193377D387DCADE6841D46095002B222934 |
| root             | %              | *31B38457C12D1E7B0533C3456109E38BAC97CFD5

那么mysql server会选择哪一条呢?

当然是这个,

| root             | 218.205.187.58 | *09D87193377D387DCADE6841D46095002B222934 |

这个规则可以看mysql手册。

http://stackoverflow.com/questions/10299148/mysql-error-1045-28000-access-denied-for-user-billlocalhost-using-passw

http://dev.mysql.com/doc/refman/5.6/en/connection-access.html

如果匹配到这条登陆信息,那么哈希之后的passwd是*09D87193377D387DCADE6841D46095002B222934,经过验证确实不是我

使用的登陆密码。问题就在这里。那么是怎么导致我密码变更了呢?

翻看了一下之前的命令记录,是这条sql语句出错了,如下,

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'218.205.187.58' IDENTIFIED BY '034039' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from user;
+------------------+----------------+
| user             | host           |
+------------------+----------------+
| root             | *              |
| root             | 127.0.0.1      |
| root             | 218.205.187.58 |
| root             | ::1            |
| root             | backup         |
| debian-sys-maint | localhost      |
| root             | localhost      |
+------------------+----------------+
7 rows in set (0.00 sec)

这个IDENTIFIED BY '034039'不是我想要的密码。而我一直使用原来的密码登陆。

====================END====================

© 著作权归作者所有

秋风醉了
粉丝 251
博文 532
码字总数 405713
作品 0
朝阳
程序员
私信 提问
mysql全局权限账户%登录不上ERROR 1045 (28000)

mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES) 2016年02月24日 13:52:18 阅读数:5974 mysql全局权限账户%登录不上 ERRO......

xiaocao13140
2018/05/25
0
0
解决Mysql ERROR 1045 (28000): Access denied for user

在ubuntu server 12.04中,安装mysql后,使用命令登录mysql居然报错了,Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE),这个错误搞得很郁闷,......

zmf
2014/10/23
187
0
Mysql ERROR 1045 (28000): Access denied for user

http://linux.chinaunix.net/techdoc/database/2008/11/25/1047550.shtml sudo apt-get install mysql 安装成功了,安装最后要求输入了密码,也输入了,OK mysql -uroot -p 输入设置的密码 ...

ChenQi
2012/06/23
74
0
ERROR 1045 (28000): Access denied for user 'root'@

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor 错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误.删除......

xiaocao13140
2018/07/02
0
0
Mysql无法完成初始化并且无法使用root登陆

解决 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 问题 转载 2016年02月22日 17:49:11 7715 最近新装好的mysql在进入mysql工具时,总是有错误提示......

martingpf
2017/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
昨天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部