前几天新装的sqlserver。在确保数据库安装正确的情况下,今天写了一个java类来测试是否可以连接数据库,代码如下
/**
*
*/
package lianjie;
import java.sql.*;
/**
* @author Administrator
*
*/
public class Data {
/**
* @param args
*/
private static Connection conn = null;
private static String driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=mess";
private static String user = "sa";
private static String pwd = "suyu1202";
public static Connection getConn(){
try{
Class.forName(driverClass);
conn = DriverManager.getConnection(URL, user, pwd);
System.out.println("连接数据库成功");
}catch(Exception ex){
System.out.println("数据库连接异常:"+ex.getMessage());
ex.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Data.getConn();
}
}
可是总是报错,类似如下。查看(netstat -an)端口监听状态,并无1433or1434,最后从网上查到了解决方案,原来是端口设置哪里出了状况。
错误情况:
SqlServer问题:sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口1433 连接到主机localhost 的TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保SQL Server 的实例正在主机上运行,且在此端口接受TCP/IP 连接,还要确保防火墙没有阻止到此端口的TCP 连接。”。
atcom.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
atcom.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
atcom.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
atcom.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
atcom.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
atcom.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
atcom.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
atjava.sql.DriverManager.getConnection(DriverManager.java:185)
在命令行中输入:telnet localhost 1433,连接不上:
检查下配置:服务和连接的外围应用配置器
已经选中了“同时使用TCP/IP和named pipes(B)”
下面再检查SQL Server Configuration Manager
实例名为“SQLEXPRESS”下的TCP/IP已经开启了:
右击“TCP/IP”选择“属性”(或双击“TCP/IP”),选择“IP地址”选项卡,最下面有个“IPALL”:
再看看“SQLNative Client配置”:
双击“TCP/IP”:
现在重启服务:
右击“SQLServer (SQLEXPRESS)”,选择重新启动。
再回到命令行下,键入:telnetlocalhost 1433
显示黑屏,说明已经成功了!