追查Could not get a databaseId from dataSource

Mybatis 创建连接池的时候报错:

ERROR 2017-03-15 00:44:50,333 commons.JakartaCommonsLoggingImpl:38 Could not get a databaseId from dataSource
java.sql.SQLException: Cannot create PoolableConnectionFactory (Communications link failure

Last packet sent to the server was 1 ms ago.)

分析

已知数据库连接字符串是正确无误的
这个错误说明连不上数据库,那一定是因为 数据库连接不对,或者数据库无法访问。

诊断

log4j配置:

log4j.logger.org.springframework = OFF
log4j.logger.org.springframework.beans.factory.support = DEBUG

即可看到是

DEBUG 2017-03-15 00:44:28,422 support.AbstractAutowireCapableBeanFactory:460 Finished creating instance of bean 'promotion_DataSource'
DEBUG 2017-03-15 00:44:28,424 support.AbstractAutowireCapableBeanFactory:1525 Invoking afterPropertiesSet() on bean with name 'promotion_sqlSessionFactory'

结论

那么是 id为”promotion_DataSource” 的数据源对应的 数据库无法正常连接。用其他工具测之,果然是连不上。

原文地址:https://www.cnblogs.com/slankka/p/9158493.html