2013-09-04 42 views
13

Ich habe diesen Code verwendet, um eine Verbindung zu SQL Server herzustellen.Der Treiber konnte mithilfe der SSL-Verschlüsselung (Secure Sockets Layer) keine sichere Verbindung zu SQL Server herstellen

String connectionUrl = "jdbc:sqlserver://IP:1433;" + 
     "databaseName=db;user=db;password=pwd"; 
    Connection con = null; 
    try { 
    // Establish the connection. 
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    con = DriverManager.getConnection(connectionUrl); 
     return "true"; 
    } 

    // Handle any errors that may have occurred. 
    catch (Exception e) { 
    e.printStackTrace(); 
    } 

, aber ich habe diesen Fehler:

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "Socket closed". ClientConnectionId:5975fad5-8f8d-496a-a2bb-bff3a8d1a755

Kann mir jemand helfen? Vielen Dank im Voraus

+0

was ist 'con'? Haben Sie versucht, 'con.Open()' oder gleichwertig aufzurufen? – Codeman

+0

Es tut mir leid. Ich habe vergessen, die Definition von Variablen zu schreiben.Ich bearbeite die Frage –

+0

Ich denke, es gibt nicht "IP" in einer Verbindungszeichenfolge –

Antwort

6

Schauen Sie sich diese Microsoft JDBC Blog Beitrag:

für Vorsatz SSL Probleme mit SQLServer (specially for android clients: JDBC-Treiber kann nicht effektiv im Android OS auf leider verwendet werden) versuchen jDTS zu verwenden :

jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000, 2005, 2008 and 2012)

+0

Sie haben Recht. Für mich geht das. Aber jeder sollte bedenken, dass JTDS 1.3.1 nicht mit Android funktioniert, also müssen wir 1.2.8 verwenden –

0

Ist es

databaseName=MyDB 

oder

database=MyDB 

?

Versuchen Sie das letztere.

Sind Sie auf einer Windows-Maschine? http://www.microsoft.com/en-us/download/details.aspx?id=24009

Laden Sie das herunter und versuchen Sie, mit Ihrem Server außerhalb Ihres Codes zu sprechen. Das Port-Abfrage-Tool zeigt Ihnen, ob es sich um eine Firewall (oder ein ähnliches Problem) außerhalb des Codes handelt.

+0

Ich habe den Code von der Microsoft-Seite für Sqljdbc heruntergeladen. Ich kann über Sql Server Management Studio eine Verbindung zu meinem Server herstellen und es gibt kein Problem. –