Spring Boot项目部署Tomcat后无法获取JDBC连接求助
问题分析与解决方案
1. 修复Hikari连接池参数冲突
你的配置存在明显参数矛盾:
spring.datasource.hikari.maximum-pool-size=10 spring.datasource.hikari.minimum-idle=15
minimum-idle不能大于maximum-pool-size,这会直接导致连接池初始化失败,修改为合理值示例:
spring.datasource.hikari.maximum-pool-size=15 spring.datasource.hikari.minimum-idle=5
2. 修正数据源参数(适配HikariCP)
你混用了Tomcat数据源的参数,HikariCP有专属的参数命名规则,替换原有配置:
# 移除 spring.datasource.testOnBorrow 和 spring.datasource.validationQuery spring.datasource.hikari.connection-test-query=SELECT 1 spring.datasource.hikari.validation-timeout=5000
3. 验证数据库访问可达性
- 若Tomcat服务器与数据库不在同一机器,需将
localhost替换为数据库实际IP/主机名:spring.datasource.jdbcUrl=jdbc:sqlserver://192.168.x.x;databaseName=IDDAA - 测试Tomcat服务器与数据库的网络连通性:用
telnet 数据库IP 1433检查端口是否开放 - 确保SQL Server开启TCP/IP协议,且防火墙放行1433端口
- 验证数据库用户
IDDAA允许从Tomcat服务器IP登录(在SQL Server中配置用户登录权限)
4. 检查war包依赖完整性
- 确认Maven/Gradle配置中,SQL Server驱动依赖的
scope未设置为provided(否则Tomcat不会包含该依赖):<!-- Maven示例 --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <!-- 不要设置scope为provided --> </dependency> - 解压war包,检查
WEB-INF/lib目录下是否存在mssql-jdbc-xxx.jar
5. 查看Tomcat日志定位细节错误
Tomcatlogs目录下的catalina.out或localhost.log会记录更具体的连接失败原因(如用户名密码错误、驱动缺失、网络超时等),根据日志进一步排查。
6. 修正JPA配置参数
将原生Hibernate参数改为Spring Boot标准配置:
# 替换 hibernate.hbm2ddl.auto=update spring.jpa.hibernate.ddl-auto=update
内容的提问来源于stack exchange,提问作者Yunus Emre Koçak
相关产品推荐
相关产品推荐

