Драйвер не смог установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL)

Я использовал этот код для создания подключения к SQL Server.

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();
  }

но я получил эту ошибку:

com.microsoft.sqlserver.jdbc.SQLServerException: драйвер не смог установить безопасное соединение с SQL Server с помощью шифрования Secure Sockets Layer (SSL). Ошибка: «Розетка закрыта». ClientConnectionId: 5975fad5-8f8d-496a-a2bb-bff3a8d1a755

Кто-нибудь может мне помочь? заранее спасибо


person Mojtaba Mahamed    schedule 04.09.2013    source источник
comment
что такое con? Вы пробовали позвонить con.Open() или аналогичный?   -  person Codeman    schedule 04.09.2013
comment
Мне жаль. забыл написать определение переменных. отредактирую вопрос   -  person Mojtaba Mahamed    schedule 04.09.2013
comment
Я думаю, что в строке подключения нет IP   -  person Tuan    schedule 04.09.2013
comment
Я просто пишу IP в качестве примера :). предположим, что это localhost или 127.0.0.1 или любой другой хост   -  person Mojtaba Mahamed    schedule 04.09.2013
comment
@MojtabaMahamed Мне очень жаль. Моя вина: D   -  person Tuan    schedule 04.09.2013


Ответы (2)


Ознакомьтесь с этой записью в блоге Microsoft JDBC:

для решения проблем SSL с SQLServer (специально для клиентов Android: драйвер JDBC не может эффективно использоваться в ОС Android, к сожалению) попробуйте использовать jDTS:

jTDS - это 100% чистый драйвер JDBC 3.0 для Java (тип 4) с открытым исходным кодом для Microsoft SQL Server (6.5, 7, 2000, 2005, 2008 и 2012)

person Ria    schedule 05.09.2013
comment
Ты прав. Меня устраивает. Но кто-нибудь должен иметь в виду, что JTDS 1.3.1 не работает с Android, поэтому мы должны использовать 1.2.8. - person Mojtaba Mahamed; 07.09.2013
comment
Я успешно использую jTDS 1.3.1 на Android версий с 5.0 по 9.0. - person TaylanKammer; 24.05.2019

Is it

databaseName=MyDB

or

database=MyDB

?

Попробуйте последнее.

Вы работаете на машине с Windows? http://www.microsoft.com/en-us/download/details.aspx?id=24009

Загрузите это и попробуйте поговорить со своим сервером вне кода. Инструмент запроса порта покажет вам, связана ли проблема с брандмауэром (или аналогичной) вне кода.

person granadaCoder    schedule 04.09.2013
comment
Я загрузил код со страницы Microsoft для Sqljdbc. Я могу подключиться к своему серверу через Sql Server Management Studio, и проблем нет. - person Mojtaba Mahamed; 04.09.2013