前言:

在接手同事搭建了一半的项目时,准备在测试环境新建一个数据库,但是发现没法建库,原因是因为用Navicat连接的mysql数据库不是root账户,所以找到老同事要到root账号就快乐的建库啦,但是中间有很多小的插曲,比如我们这root账号并不是设置的任意ip都可以通过Navicat直接连接,所以我需要先在服务器里用指令建库然后在给某些用户赋予对于这个数据库的权限。但是建好库后,粗心的我还是碰到了标题中的异常:java.sql.SQLException: Access denied for user 'app '@'xxxxxx' (using password: YES),这篇文章主要讲解的是复现异常和如何解决这个异常。

正文:

一、复现Navicat连接数据库出现异常的场景:

我用Navciat正准备建数据库时,出现如下图的异常,翻译的意思就是拒绝用户root@%访问数据库‘xxxxx’,这种错误是在远程登录时造成的,如果直接在Linux中的MySQL下,通过sql语句操作则不会出现这样的错误,所以造成这样错误出现的原因是远程登录时,创建数据库,权限不足。

二、解决异常的第一步

出现问题后我是在Linux下用指令新建了一个库,并且给相应的账号进行赋值,具体操作如下

①首先用root账号登入数据库,然后查看下都有哪些用户

登录指令:mysql -u root -p 回车后输入密码

root权限下查看所有用户的指令:SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

②查看你Navicat的连接数据库的账号有哪些操作权限,这里有个小坑,记住'dada'@'%'和'dada'@'localhost'是不一样的,一般我们使用%,因为%包含全部。

查看某用户权限的指令:show grants for 'app'@'%';

③新建一个数据库,相应的指令是

CREATE DATABASE xxxx;

④然后给你的用户这里是app@'%'赋予操作这个数据库的权限,指令是

grant all privileges on main_db.* to app@'%' identified by 'xxxxxx';

如果出现上面的错误,这是因为mysql版本不一样导致密码的加密方式不同,你直接在后面输入密码就会出现上面的错,可以输入以下指令:set old_passwords=0;然后在重新执行授权指令即可。

但是如果出现的是下面这个错误,就说明你指令的格式写的有问题,比如没有写结束号分号(;)仔细检查下看看哪里写的不规范。

然后再执行授权指令即可

最后记得执行刷新指令:flush privileges;

⑤再次查看该用户的权限,看权限是否赋值成功,出现你授权数据库的名称,则表明授权成功。

⑥这时候我用app这个账号连上Navicat,就会出现我用root新建的数据库名称

三、复现控制台出现异常的场景(下面才出现标题中出现的异常)

1.上面都只是数据库连接出现的问题,代码的控制台还没有报错,现在我用测试接口测试下是否可以去这个数据库的某张表里查到一条数据,一运行代码就出现了如下的异常

这个异常,就时上面我们没有给app账号授权造成的,只要去Linux下用root账号给用户授权就可以啦。

2.授完全,我一运行代码又出现了以下的问题

出现这个异常时,就是你的配置文件写的有问题,是不是账号那里多敲了一个空格,或者是ip写的不对,也或者是密码写的不对,一般都会报上图这个错误。

3.经检查,我发现我是ip写的不对

总结:

解决问题最繁琐的地方是排查问题出现在什么地方,只要找到问题出现的地方,其实解决问题就变得很容易啦。我是阿达,一名喜欢分享知识的程序员,时不时的也会荒腔走板的聊一聊电影、电视剧、音乐、漫画,这里已经有17位小伙伴在等你们啦,感兴趣的就赶紧来点击关注我把,哪里不明白或有不同观点的地方欢迎留言。

java.sql.SQLException: Access denied for user 'app '@'xxx.xxx.xxx.xxx' (using password: YES)相关推荐

  1. java.sql.SQLException: Access denied for user 'Administrator'@'192.168.5.103' (using password: YES)

    jdbc.properties配置信息 driverClasss=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://locahost:3306/test?luseU ...

  2. 解决方法之报错:java.sql.SQLException: Access denied for user ‘root‘@‘192.168.100.1‘ (using password: YES)

    在用Eclipse链接虚拟机里的mysql时出现了下面这个bug: java.sql.SQLException: Access denied for user 'root'@'192.168.100. ...

  3. 完美解析解决java.sql.SQLException:Access denied for user ‘‘@‘localhost‘ (using password: NO)

    用springboot项目连接数据库时报了这个错误java.sql.SQLException: Access denied for user 'root'@'localhost' (using pas ...

  4. HikariPool使用MySQL/MariaDB数据库报错解决:java.sql.SQLException: Access denied for user 'root'@'localhost' (u

    在使用HikariPool连接到我的数据库时报错如下,完整的报错放在最后: 2019-06-25 20:24:26.048 ERROR 18204 --- [nio-8080-exec-9] com. ...

  5. 数据库异常 :java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    数据库异常 :java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 参考文章: ...

  6. java.sql.SQLException: Access denied for user ‘‘@‘localhost‘ (using password: NO)报错问题解决

    java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)报错问题解决 参考文章: (1)jav ...

  7. java.sql.SQLException: Access denied for user ‘root‘@‘hadoop001‘ (using password: YES)

    java.lang.RuntimeException: java.sql.SQLException: Access denied for user 'root'@'hadoop001' (using ...

  8. java.sql.SQLException: Access denied for user 'Administrator'@'localhost' (using password: YES)

    早上在做MyBatis+Spring整合的时候爆了个奇葩的bug: 十月 19, 2017 11:18:11 上午 org.springframework.context.support.Abstra ...

  9. JDBC :java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES) 数据库登录正常

    项目场景: JDBC连接mysql异常,数据库可正常登录!(这里是命令窗口执行结果,IDEA运行也是如此) 问题描述 今天遇到一个令人发指的问题,早上JDBC连接很正常,晚上突然连接不上了!但是数据库 ...

最新文章

  1. 每日一皮:老大爷,您保持年轻的秘诀是什么
  2. zeros--创建零矩阵
  3. JS 中 indexOf 的用户及注意事项
  4. 前端笔记-jquery
  5. Python heapq库的用法介绍
  6. 在相册查看保存的图片
  7. activiti 工作流_JAVA-工作流引擎-activiti-Tasks介绍
  8. 变量的三重属性_TypeScript基础入门 - 变量声明(三)
  9. 127.0.0.1和localhost和本机IP三者的区别
  10. Windows 98 SE
  11. 马尔可夫链模型的信贷风险分析与预测
  12. “女主播翻车”骂声不断,店湾妹感慨:主播界怎么了?三观已毁!
  13. 异常:The JSP specification requires that an attribute name is preceded by whitespace
  14. 石器时代linux架设教程,CentOS 6.5架设石器时代教程(客户端篇)
  15. 零基础想学大数据?别急!先搞清这一点
  16. 唯品会基于Kubernetes(k8s)网络方案演进
  17. 计算机如何恢复桌面,如何恢复计算机桌面图标不见了
  18. mac下视频转换软件效率分析,最后只推荐三款格式转换软件
  19. Alpha冲刺-第一天
  20. 挖矿病毒 qW3xT.2 最终解决方案

热门文章

  1. 面试腾讯软件测试经过1面2面3面,最终面试官对我竖起大拇指!
  2. thingsboard从搭建环境到安装部署,给安装出错,或者安装失败的小伙伴现场写一遍(修正版)
  3. 为什么中高档汽车都使用双目摄像头?
  4. 分段线性插值法实验报告_计算方法实验报告习题1(浙大版)
  5. 【笔记】MATLAB文件中文乱码问题:使用记事本打开,保存成不同的格式,然后再使用Matlab打开观察结果
  6. js打印pdf 使用Adobe reader 打印pdf
  7. 忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(9)链表
  8. iPhoneX安全区域与H5引发的问题(Safe Area)
  9. 计算机主板晶振长稳短稳,晶振的指标参考
  10. 一起赚美金:经典Niche站变现模式分析(1)