Рейтинг:0

SQLSTATE [08001]: [Microsoft] [Драйвер ODBC 17 для SQL Server] Поставщик TCP: код ошибки 0x2746

флаг cn

Я использую PHP Laravel 7.4 в Ubuntu 20.04 и пытаюсь получить данные с SQL Server, расположенного на сервере Windows в другом облаке.

Этот метод был протестирован на моем ПК (Windows) и успешно извлек данные с сервера Windows. Однако на моем сервере Ubuntu я следую документация от майкрософт и получить эту ошибку:

SQLSTATE [08001]: [Microsoft] [Драйвер ODBC 17 для SQL Server]
Поставщик TCP: код ошибки 0x2746 (SQL: myquery) 
{"userId":94,"исключение":"[объект] 
(Illuminate\Database\QueryException (код: 08001): SQLSTATE [08001]: 
[Microsoft] [Драйвер ODBC 17 для SQL Server] Поставщик TCP: код ошибки 
0x2746 (SQL: myquery) в /var/www/web-api/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669)

Я проверил журналы в Microsoft SQL Server Management Studio и заметил, что это сообщение появляется каждый раз, когда я делаю запрос из Ubuntu.

"От удаленного клиента получен запрос на подключение TLS 1.2. приложение, но ни один из наборов шифров, поддерживаемых клиентом приложения поддерживаются сервером. Запрос SSL-соединения провалился."

Как я могу это исправить?

Рейтинг:0
флаг in

Ан 08001 ошибка возникает при сбое подключения ODBC к базе данных SQL Server. Вы упомянули две вещи, которые выделяются:

  1. это работает на вашей локальной машине разработки
  2. экземпляр SQL Server работает (возможно) у другого облачного провайдера

Поскольку соединение работает с вашего локального компьютера, имя пользователя/пароль, скорее всего, правильное, но вы захотите проверить. Однако наиболее вероятным виновником будет брандмауэр. Убедитесь, что IP-адрес Ubuntu Server разрешен через брандмауэр для Windows Server, на котором работает SQL Server.

Должны быть доступны следующие порты:

TCP: 1433, 4022, 135, 1434
UDP: 1434

naif basalib avatar
флаг cn
Я сделал, как вы упомянули выше, и я все еще сталкиваюсь с той же ошибкой. Однако я проверил журналы в MSSQL и заметил, что это сообщение появляется каждый раз, когда я делаю запрос из Ubuntu. «Запрос на подключение TLS 1.2 был получен от удаленного клиентского приложения, но ни один из наборов шифров, поддерживаемых клиентским приложением, не поддерживается сервером. Запрос на подключение SSL не выполнен».
флаг in
Эта ошибка делает это проблемой, связанной с Windows Server. Ознакомьтесь с [этой документацией](https://docs.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-dtls-and-ssl-protocol-version-settings) из Microsoft о том, как настроить параметры протокола TLS и SSL.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.