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” 的数据源对应的 数据库无法正常连接。用其他工具测之,果然是连不上。