我收到以下错误:com.microsoft.sqlserver.jdbc.SQLServerException:驱动程序无法使用安全套接字层(SSL)加密建立与SQL Server的安全连接。错误:"通过对等方重置连接:套接字写入错误。"
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
public class SQLDatabaseConnection {
// Connect to your database.
// Replace server name, username, and password with your credentials
public static void main(String[] args) {
String connectionString =
"jdbc:sqlserver://XXXXX.database.windows.net:1433;"
+ "database=VDB;"
+ "user=XXX@VVV;"
+ "password=XXXX;"
+ "encrypt=true;"
+ "trustServerCertificate=false;"
+ "hostNameInCertificate=*.database.windows.net;"
+ "loginTimeout=30;";
// Declare the JDBC objects.
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
connection = DriverManager.getConnection(connectionString);
// Create and execute a SELECT SQL statement.
String selectSql = "SELECT TOP 2 * from Application";
statement = connection.createStatement();
resultSet = statement.executeQuery(selectSql);
// Print results from select statement
while (resultSet.next()) {
System.out.println(resultSet.getString(2) + " "
+ resultSet.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// Close the connections after the data has been handled.
if (resultSet != null) try {
resultSet.close();
} catch (Exception e) {
}
if (statement != null) try {
statement.close();
} catch (Exception e) {
}
if (connection != null) try {
connection.close();
} catch (Exception e) {
}
}
}
}
我只是想做"示例" Azure站点上引用的代码连接片段(指向MS条目),仅修改为匹配我的数据库和测试表但没有成功。
经过审查后我知道,我有: -
我尝试了加密和信任的各种组合而没有成功。由于我是Java和Azure的新手,我不愿意并且不确定如何摆弄JVM安全设置。
我已经证明我的计算机可以与Azure数据库通信(通过VB ODBC连接);我已经用防火墙测试了。
有什么想法吗?
答案 0 :(得分:0)
我尝试重现该问题,但未能使用与您类似的代码访问我的SQL Azure实例。
除了使用我的sql azure实例的连接字符串之外,我们的代码之间的差异如下所示。
sqljdbc4.jar
link。sqljdbc_4.0
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
加载MS SQL JDBC驱动程序。sqlauth.dll
文件添加到CLASSPATH
。select 1+1
测试我的代码,并从代码4
获取值result.getInt(1)
。这对我来说很好。如果您可以为我们提供更多信息,我认为这对分析问题非常有帮助。
希望它有所帮助。