连接到SQL Server时出现NetBeans SSL错误

时间:2018-12-03 23:42:45

标签: java sql sql-server netbeans

我一直被困在一个小问题上,这是故事: 我有一个使用VMWare安装程序的环境,其中有一台运行Windows 7的PC和NetBeans 8.2,运行在JDK 8.1上,以及一台运行SQL Server Express的Windows Server 2003,该服务器上有一个SQL登录帐户,可以访问它是从Windows 7计算机通过SQL Manager从Windows 7计算机上获取的,但是,当我尝试在Netbeans上使用带有Java的JDBC4.2连接到它时,它似乎不起作用

不断弹出的问题与SSL有关,我真的不知道这意味着什么。这是netbeans给我的输出,我将它与SQL Server 2005一起使用,将NetBeans与JRE / JDK 8.1一起使用,尝试使用11.0出于某种原因不想打开项目,我尝试的JDBC是7.0 for 8.1、4.1和4.2 我尝试使用NetBeans 8.2和7.4版本。我只是谷歌翻译的错误,这意味着SSL的错误,可能是因为存在语言冲突?我的服务器是法语,Windows 7是法语,而netbeans是英语。

run:
com.microsoft.sqlserver.jdbc.SQLServerException: Le pilote n'a pas pu établir de connexion sécurisée au serveur SQL Server à l'aide du chiffrement SSL (Secure Sockets Layer). Erreur : « Le serveur SQL Server n'a retourné aucune réponse. La connexion a été fermée. ClientConnectionId:b41b6f9f-9c96-431a-ae4b-9066fef73be1 ».
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:2826)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1829)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:2391)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:2042)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1889)
    at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:1120)
    at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:700)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:270)
    at connectbd.ConnectBD.main(ConnectBD.java:41)
Caused by: java.io.IOException: Le serveur SQL Server n'a retourné aucune réponse. La connexion a été fermée. ClientConnectionId:b41b6f9f-9c96-431a-ae4b-9066fef73be1
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.ensureSSLPayload(IOBuffer.java:786)
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.readInternal(IOBuffer.java:836)
    at com.microsoft.sqlserver.jdbc.TDSChannel$SSLHandshakeInputStream.read(IOBuffer.java:829)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.readInternal(IOBuffer.java:999)
    at com.microsoft.sqlserver.jdbc.TDSChannel$ProxyInputStream.read(IOBuffer.java:989)
    at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
    at sun.security.ssl.InputRecord.read(InputRecord.java:503)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1413)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1397)
    at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1756)
    ... 8 more
BUILD SUCCESSFUL (total time: 3 seconds)

这是我的代码

package connectbd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.PreparedStatement;

/**
 *
 * @author blaid
 */
public class ConnectBD {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        String Server="SQLSERVER";
        int port = 1433;
        String user = "****";
        String password = "****";
        String database = "LP_SIBD_GR15";
        String Instance = "SQLE";
        String jdbcurl;
        Connection con = null;
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        jdbcurl = "jdbc:sqlserver://" + Server + ";instanceName="+Instance+";user=" + user + ";password=" + password + "; databasename=" + database + "";

        try {
            con=DriverManager.getConnection(jdbcurl);
            System.out.println("Connection success");
        } catch(SQLException e) {
                e.printStackTrace();
        }

    }

}

0 个答案:

没有答案