Accessdeniedforuser'xxx'@'localh
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Accessdeniedforuser'xxx'@'localh,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2498字,纯文字阅读大概需要4分钟。
内容图文
最近在部署项目,由于之前是在windows做的开发,部署却是在linux下,吃了不少跨平台的亏,比如今天才发现linux下mysql的表名是严区分大小写的。这次是另一个坑,在tomcat连接mysql的时候,报错Access denied for user 'xxx'@'localhost.localdomain' (using
最近在部署项目,由于之前是在windows做的开发,部署却是在linux下,吃了不少跨平台的亏,比如今天才发现linux下mysql的表名是严格区分大小写的。这次是另一个坑,在tomcat连接mysql的时候,报错Access denied for user 'xxx'@'localhost.localdomain' (using password: YES))。
之前也遇到过类似的问题,不过是在windows下,而且错误信息有点区别,是Access denied for user 'xxx'@'localhost' (using password: YES)),排查结果就是缓存没清,实际用来连接数据库的用户名和密码与配置文件中的不一致,这种原因的排查只需要把用来连接数据库的用户名和密码打印一次就可以了,此处不表。但是,这次并不是这个原因造成的,用户名和密码没有错误。
排查过程:
先用root用户登录mysql,然后执行下列语句查询mysql的全部用户,观察结果,这有助于你对后续内容的理解:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
你会看到,即便是相同的用户名,也会有不同的@host后缀,这里指的是同一个用户在不同的主机上的登录,@host指的是主机
这里注意报错的是Access denied for user 'xxx'@'localhost.localdomain' (using password: YES))而不是Access denied for user 'xxx'@'localhost' (using password: YES)),差了一个localdomain还是有很大区别的。这就牵扯到了localhost和127.0.0.1(localhost.localdomain)的区别。
我们直接在命令行以“mysql -u用户名 -p密码”的形式登录mysql数据的时候,并没有使用tcp/ip连接,mysql会认为连接来自localhost,因此实际登录的是xxx@localhost。但是,在linux中,用tomcat连接数据库的时候(我在windows下不会这样,不知道为何),使用了tcp/ip,主机被判定为来自127.0.0.1,那么实际登录的就是 xxx@localhost.localdomain,那么你用xxx@localhost的密码去验证xxx@localhost.localdomain当然只能被判定为拒绝连接。
解决方法:
1.创建一个新的用户并授权其访问指定数据库的权限。这里我指定了主机为localhost.localdomain,意味允许用户名为snow的用户,以密码123在localhost.localdomain的主机上连接数据库;注意这个指定主机localhost.localdomain很关键。
GRANT USAGE ON *.* TO 'snow'@'localhost.localdomain' IDENTIFIED BY '123' WITH GRANT OPTION;
2.位该新用户赋予操作数据库exampleDB的全部权限。
grant all privileges on exampleDB.* to snow@localhost.localdomain identified by '123';
3.更新权限表
flush privileges;
然后把代码中连接的用户名改为snow,密码改为123。,问题解决,成功连接上mysql了。
当然你也可以不改代码中的用户名和密码,只需将上述第1,2步骤的用户名和密码替换为你的用户名和密码即可。
内容总结
以上是互联网集市为您收集整理的Accessdeniedforuser'xxx'@'localh全部内容,希望文章能够帮你解决Accessdeniedforuser'xxx'@'localh所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。