maven整合ssm时报的错:Connections could not be acquired from the underlying database!
bug描述:
在做maven和ssm整合时,我写了个简单的展示用户列表的demo,发现它能通过对userservice层进行的单元测试,但是用maven去build的时候却报错了,主要提示如下:Connections could not be acquired from the underlying database!
解决方案:
我没啥解决思路,然后百度了一波,看到一个看上去比较靠谱的答案:
1,驱动配置有误:driver=com.mysql.jdbc.Driver
2,数据库连接地址有误:url=jdbc:mysql://localhost:3306/test?3useUnicode=true&characterEncoding=utf8
3,密码或帐号有误:username=root
password=root
4,数据库未启动或无权访问
5,项目未引入对应的驱动jar包mysql-connector-java-5.1.6-bin.jar
6,mysql root没有远程访问的权限,需要增加权限,增加权限的步骤如下:
进入mysql数据库:
grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
flush privileges;
答案来源:https://www.iteye.com/blog/jyao-1915561
我的bug就是数据库连接地址有问题:
看到了没,这块是我数据库链接地址的编码格式后面还加多了空格,这种bug不容易被发现。
但神奇的是我做的单元测试的内容就是连接数据库,从数据库里拿到一个list,单元测试居然通过了。以至于我找bug的时候都丝毫不怀疑我数据库的properties文件有问题。这下记住了。
出bug看日志还是要从最后一个bug找起,从下往上看