这几天在MySQL新建用户后。出现訪问拒绝的问题,错误码为ERROR 1045(28000)。在网上搜索了非常久。找到了非常多解决的方法,但非常遗憾的是这么多办法没有一个能解决该问题。尽管出现的错误码28000非常多人都遇到过。但原因也有所不同。有的是mysql.user表中没有信息。有的是root用户没有password(那就不用password登录),而使用mysql-5.6.19时,mysql.user实用户信息,root用户没有password。採用的方法是root用户登录时输入空password,登录成功。

使用root用户创建測试用test,password为test。语句例如以下:

grant all onlogdb.* to test identified by ‘test’;

在命令行输入mysql  -u test –p,输入passwordtest,出现以下的错误信息,具体该错误信息非常多人在使用MySQL时都遇到过。

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

解决方法是用root用户再创建用户test,passwordtest,唯一不同的是指定test登录的主机为localhost,例如以下:

grant all onlogdb.* to test@'localhost' identified by 'test';

再次使用test用户登录MySQL,成功。例如以下所看到的:

使用root用户登录MySQL。查看user表中的用户信息例如以下。能够发现存在两个test用户。host的字段分别为%和localhost。就是前面创建的两个用户。

在MySQL中%表示能够在不论什么主机上登录MySQL数据库,那为什么还须要明白创建登录主机为localhost的用户呢?这涉及到MySQL安装时的初始化用户,匿名用户以及连接验证策略等,以下进行深入的分析。

在安装MySQL时,会默认初始化一些用户,比方root用户,以及host字段为localhost,user字段为空的用户。

User字段为空的用户即为匿名用户。该用户的password也为空,不论什么人都能够使用匿名用户登录MySQL数据库,但能够做的事情却是有限的。比方在命令行直接输入mysql登录,能够查看匿名用户对哪些数据库有权限:

\

通过上面的图片能够发现,匿名用户仅对information_schema和test数据库有权限。而匿名用户又是怎样影响其它用户登录。进而出现28000错误的呢?当试图连接MySQL数据库时,数据库依据提供的身份和password决定是否接受连接请求,身份由两部分组成:username和client主机(即输入mysql命令的主机)。

因为host字段中的%匹配不论什么主机或者host字段包括通配符。就可能出现多个匹配行。server必须决定匹配哪一个,解决方式例如以下:

server将user表中的数据读入内存中,依照host和user字段对行进行排序。

当client试图连接时,server查找已排序的行并使用第一个匹配client主机和username的行,user字段为空表示能够匹配不论什么用户。

找到匹配行后,在验证password是否一致,假设一致则登录成功。

依据上面描写叙述的规则。通过演示样例来演示为什么必需要创建test@localhost用户,才干在本地登录成功。对user表进行排序的结果例如以下图所看到的:

当未创建test@localhost时,该表不包括第一行的记录。用户test登录时。则会匹配到第四行的记录:host为localhost,user为空,由于user为空能够匹配不论什么用户,再去验证password不成功登录失败。或者不使用password登录。还是匹配到第四行,但验证password成功,然而匿名用户仅仅对information_schema和test数据库有权限,使用其他数据库时也会失败。例如以下所看到的:

总结一下,当出现28000错误时。首先查看user中是否有数据,是否存在匿名用户。若存在匿名用户则创建userName@localhost,或者也能够删除匿名用户。

mysql 1045 28000原因_深入分析MySQL ERROR 1045 (28000)相关推荐

  1. mysql 1067错误原因_关于MySQL的1067错误解决方法

    内容: ************* 1 安装MYSQL后更改了ROOT的密码后用 net startmysql 启动时我就遇到了这样的问题.使用以下命令后 c:\mysql\bin\mysqladmi ...

  2. mysql连接数过多 原因_理解MySQL数据库连接数过多的原因

    使用MySQL数据库,有一个容易出现的问题--Too many connections.连接数超过max_connections就会报这个错误.MySQL为了在达到最大连接数时也能给DBA有机会操作, ...

  3. mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user #39;mhz#39;@#39;localhost#39; (using ...

    mysql全局权限账户%登录不上 ERROR 1045 (28000): Access denied for user 'mhz'@'localhost' (using password: YES)  ...

  4. 记录Linux下彻底删除MySQL以及启动MySQL之后使用密码登录提示报ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost

    1. 问题描述: 在安装mysql前需先卸载自带的Mysql-libs,或者安装错误导致mysql不可用等等一系列原因要彻底删除Linux上现存的所有的mysql. 解决方法: 使用以下命令查询MyS ...

  5. mysql全局权限账户%登录不上ERROR 1045 (28000): Access denied for user 'zzq'@'localhost' (using password: YES)

    mysql中有新建了一个%(允许所有主机连接)和ALL权限的账户.但是竟然连不上.用root或者其他localhost的用户却可以登录.首先检查下防火墙打开了没,可以用service iptables ...

  6. mysql被更新失败_更新mysql出错:出错原因 You are using safe update mode

    更新mysql出错:出错原因 You are using safe update mode 追逐太阳-追求梦想 2017-12-04 20:59:24 2968 收藏 分类专栏: mysql 版权 出 ...

  7. mysql出现1499错误_连接MySQL时出现1449与1045异常解决办法

    连接MySQL时出现1449与1045异常解决办法 mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解 ...

  8. mysql登陆1130错误_解决MySQL远程登录时出现ERROR 1130错误问题

    在用mysql进行远程连接时出现下列错误 [root@openfire ~]# mysql -u root -h mysql.clvn.com.cn -p Enter password: ERROR  ...

  9. mysql登陆1130错误_解决MySQL远程登录时出现ERROR 1130错误问题_MySQL

    在用mysql进行远程连接时出现下列错误 [root@openfire ~]# mysql -u root -h mysql.clvn.com.cn -p Enter password: ERROR ...

最新文章

  1. 阿里的“扫地僧”,2年“抄”了20万页古籍
  2. 考前自学系列·计算机组成原理·控制器的组成及各部分的功能
  3. Unable to start activity ComponentInfo{com.first/com.first.Game}
  4. mysql grant 表通配符_mysql如何使用GRANT表----访问控制
  5. ubuntu cd 改变路径
  6. nndl学习笔记(一)反向传播公式总结
  7. 解决Execution failed for task ':app:clean'. Unable to delete directory问题
  8. 批量图片处理,打包成zip
  9. 在secureCRT上设置常用的快捷输出按钮栏
  10. Java学习day07-认识类和对象(单元测试Test)
  11. NX/UG二次开发—CAM—快速查找程序参数名称
  12. java学习笔记(7)
  13. 重构--Introduce Parameter Object
  14. ACM:搜索算法专题(1)——24点
  15. Kubernetes 污点与容忍
  16. 手机短信接收验证码的实现原理
  17. 数据分析案例:APP热点标签分析
  18. Spring-day01
  19. 1.zabbix部署安装
  20. Linux 网络命名空间

热门文章

  1. 翻翻git之---实现下拉到底刷新RecycleView InfiniteScroll
  2. 清明节, 说下我对生死的感受
  3. 海康威视相机使用配置
  4. Vue.js系列之vue-router(下)(5)
  5. shell经典 shell十三问
  6. 《ASCE1885的武术》---断骨
  7. Win10搭建FTP服务器+java代码实现文件上传至FTP服务器
  8. Axure PR 全局变量、页面传值与条件判断
  9. 微信小程序获取微信运动数据并解密
  10. Zoom在App Store上架10周年之际 全球iOS和Google Play的累计下载量已超10亿次