我在一次Java WEB项目 开发中,
如下的程序:
private Connection conn; private Statement stmt; private PreparedStatement pstmt; private ResultSet rst; private void init() { try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); String url = "jdbc:sqlserver://localhost:1433;DatabaseName=take_out"; conn = DriverManager.getConnection(url, "sqlTeam", "123456"); /////测试用************ System.out.println("连接成功!!!"); System.out.println("连接成功!!!"); System.out.println("连接成功!!!"); ////************** } catch (Exception e) { e.printStackTrace(); } } public DBConnect(String s) { try { init(); pstmt = conn.prepareStatement(s); } catch(Exception e) { e.printStackTrace(); } } public DBConnect() { try{ init(); stmt = conn.createStatement(); } catch (Exception e) { e.printStackTrace(); } }
抛出了一些异常,其中第一句话就如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.ConnectException: Connection refused: connect
我的数据库是MS-SQL Server2005的, 当时Google 一下,很多帖子都是说都说要在SQL SERVER CONFIGURATION MANAGER里把默认关闭的TCP/IP从禁止改成启用,把SQL SERVER BROWSER也打开.
,可是我的打开了,端口为1433的,但是我在运行“CMD”后的DOS控制台里输入 netstat -an的命令发现,端口为1433的,系统并没有在侦听。这搞得很郁闷。
后来想了很多方法;
其中针对不同人的电脑有不同的方法,比如我的朋友的电脑当时也出现了上面情况,他这样做就行了:
“确定TCP/IP有没有启动.
确定TCP端口对不对, 在TUTORIAL和SAMPLE里的都是1433端口, 可是我SQL SERVER的TCP接听端口是2159. 把程序里的1433改成1459就马上可以用了.
设置方法:
打开SQL SERVER CONFIGURATION MANAGER (不记得SQLEXPRESS版本有没有这个了, ENTERPRISE版本的有), 左边窗口扩展SQL SERVER 2005 网络配置, 选择SQLEXPRESS 的协议(你的名字不一定是SQLEXPRESS), 右边窗口中双击TCP/IP, 弹出窗口中顶部TAB点"IP 地址", 看IPA11(或者是IPAll..看不出来是1还是l), 里面"TCP 动态端口"的值就是你的端口. ”(以上是当时一起讨论的时候针对他的电脑得出的)
可是我的电脑就麻烦一点;
.........待续..
现在还在麻烦中...
等会再把方法上传
(*^__^*) 嘻嘻……