tomcat 运行异常Cannot create PoolableConnectionFactory (到主机 的 TCP/IP 联接失败)(用户sa登录失败)

这是在java web中启动tomcat遇到的问题,因为这个问题,整整折腾了两天的时间,找了很都解决方案,但终究还是不能正常。现在整理下这个问题的解决方案:

首先,出这个问题之前,请检查一下的问题,这是最基本的前提:

1、sql server的服务是否开启,是否是windows和sql混合登录模式 

2、确保登录名 sa 和密码都准确无误 

3、根目录下jdbc.properties中设置的连接驱动、连接数据库名称、密码完全正确

好了,确保了这个都没问题的时候,我启动tomcat,报出了了错误:Cannot create PoolableConnectionFactory (到主机 的 TCP/IP 联接失败)

【解决】打开sql配置管理器,启动tcp/ip协议,双击tcp/ip协议


找到最后的IPAll,设置tcp端口号为默认的 1433.(我这里是1431,原则是哪个不冲突就使用哪个),这样一来,问题解决

这样一来,出现了第二个问题Cannot create PoolableConnectionFactory (用户‘sa’登录失败)

【解决】:检查了n多种可能出现的情况之后,我下载了网络连接查看器,发现sqlserver.exe这个程序在后台运行,很有可能是它占用了1433端口,关键是我换了其他的端口后,还是报这个错误。所以,最后把问题应该归结为sqlserver.exe占用了连接通道,所以错误提示为连接池工厂无法创建,直接cut掉就行。

奇怪的事情来了,在win7自带的资源管理器中却怎么也找不到sqlserver.exe这个程序。其实我发现,很多时候,win7自带的资源管理器不太好用,建议大家都下载一个网络连接查看器,很明显的知道那个程序占用了哪个端口,直接cut掉就行,方便!

另外还有其他网友的解决方案:1433被别的程序占用,大家更改tcp/ip的端口号就行,但是别忘了在jdbc.properties中更改localhose:1433的默认端口号

至此,问题解决,大家还有什么问题,欢迎交流!

原文地址:https://www.cnblogs.com/rookiebob/p/3749398.html