我正在尝试使用JDBC连接到远程MS-SQL数据库实例。 MS-SQL在远程Windows机器上运行,我的JDBC程序在linux机器上运行。
public class JdbcSQLServerConnection {
public static void main(String[] args) {
if (args.length != 3) {
System.out.println("Usage :\njava -jar jarFile.jar url username password");
System.exit(0);
}
Connection conn = null;
try {
String dbURL = args[0];
String user = args[1];
String pass = args[2];
conn = DriverManager.getConnection(dbURL, user, pass);
if (conn != null) {
DatabaseMetaData dm = (DatabaseMetaData) conn.getMetaData();
System.out.println("Driver name: " + dm.getDriverName());
System.out.println("Driver version: " + dm.getDriverVersion());
System.out.println("Product name: " + dm.getDatabaseProductName());
System.out.println("Product version: " + dm.getDatabaseProductVersion());
}
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
运行代码时,我遇到以下异常:
com.microsoft.sqlserver.jdbc.SQLServerException:与主机XX.XXX.XX.XXsqlexpress,端口1433的TCP / IP连接失败。错误:null。验证连接属性。确保主机上正在运行SQL Server实例并接受端口上的TCP / IP连接。确保防火墙不阻止与端口的TCP连接。
我正在使用驱动程序sqljdbc4.jar。下面显示的是我的JDBC程序。