Why do I get java.sql.SQLException: "Network error IOException: Connection refused: connect"
when trying to get a connection?
The "Connection refused"
exception is thrown by jTDS when it is unable to connect to the server. There may be a number of reasons why this could happen:
- The server name is misspelled or the port number is incorrect.
- SQL Server is not configured to use TCP/IP. Either enable TCP/IP from SQL Server's Network Utility app or have jTDS connect via named pipes (see the URL format for information on how to do this).
- There is a firewall blocking port 1433 on the server.
To check whether TCP/IP is enabled and the port is not blocked you can use "telnet <server_host> 1433". Until telnet doesn't connect, jTDS won't either. If you can't figure out why, ask your network administrator for help.
解决问题当然是先按照官网来检查了,于是一步步查下来,发现符合现象2,但是通过网络管理工具察看TCP/IP,正常。而现象确实与上文描述相同,打了sp3,sp4补丁。后telnet localhost:1433结果老出现在端口23失败,把防火墙关了,还是错。启动telnet服务,用netstat -a看没有1433,只好改了ms server得端口,可还错原来命令错 telnet localhost 1455不用中间的冒号。可是还是出现“不能打开到“”的连接,登录失败,原来连接字符串错:jdbc:jtds:sqlserver://localhost:1455/<SSH>应该为jdbc:jtds:sqlserver://localhost:1455/SSH