Ошибка: поставщик TCP: код ошибки 0x2746. Во время настройки Sql в linux через терминал

Я пытаюсь настроить сервер MS-SQL в моем Linux, следуя документации https://docs.microsoft.com/pl-pl/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017

Состояние сервера SQL Активно (Работает)

Я получаю следующую ошибку при выполнении команды

sqlcmd -S localhost -U SA -P '<YourPassword>'

Ошибка:

Sqlcmd: ошибка: драйвер 17 Microsoft ODBC для SQL Server: поставщик TCP: Код ошибки 0x2746. Sqlcmd: ошибка: драйвер Microsoft ODBC 17 для SQL Сервер: клиент не может установить соединение.

Я также пытался дать команду

sqlcmd -S 127.0.0.1 -U SA -P '<YourPassword>' 

Но проблема не решена, и отображается та же ошибка.

Когда я пытался ввести неправильный пароль, он также отображал ту же ошибку.

Пожалуйста, помогите мне решить эту проблему. Заранее спасибо !

Ответы

Ответ 1

Возвращение к 14.0.3192.2-2 помогает.

Но эту проблему можно решить также с помощью метода, указанного Ola774, не только в случае обновления с Ubuntu 16.04 до 18.04, но и при каждой установке SQL Server 2017 в Ubuntu 18.04.

Похоже, что Microsoft сейчас в cu16 испортила собственный патч для проблем ssl-версии, примененных в cu10 (https://techcommunity.microsoft.com/t5/SQL-Server/Installing-SQL-Server-2017-for-Linux-on-Ubuntu-18-04-LTS/ba-p/385983). Но связывание библиотек ssl 1.0.0 работает.

Просто сделайте следующее:

  1. Остановить SQL Server

    sudo systemctl stop mssql-server 
    
  2. Откройте редактор для настройки сервиса с помощью

    sudo systemctl edit mssql-server 
    

Это создаст переопределение для исходной конфигурации службы. Правильно, что файл переопределения или, точнее, "drop-in-file", пуст при первом использовании.

  1. В редакторе добавьте в файл следующие строки и сохраните его:

    [Service]
    Environment="LD_LIBRARY_PATH=/opt/mssql/lib" 
    
  2. Создайте символические ссылки на OpenSSL 1.0 для использования SQL Server:

    sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/mssql/lib/libssl.so 
    sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/mssql/lib/libcrypto.so 
    
  3. Запустите SQL Server sudo systemctl Запустите mssql-сервер

Ответ 2

sudo apt-get install mssql-server=14.0.3192.2-2

Возврат к этой версии работал для меня.

Мой сценарий был новой установкой (все последняя версия) на Ubuntu Server 18.04.2, получая сообщение об ошибке подключения клиента от sqlcmd:

Sqlcmd: ошибка: драйвер 17 Microsoft ODBC для SQL Server: поставщик TCP: код ошибки 0x2746

Ответ 3

Вы можете откатить до предыдущей версии с помощью команды sudo apt-get install mssql-server=14.0.3192.2-2 или сохранить новую версию, выполнив ответ MSSQL_Ubuntu.

Также отключите обновления в пакете mssql-server:

sudo apt-mark hold mssql-server

Это не помешает вам обновить его вручную, когда вы этого пожелаете.

Ответ 4

Обновление с Ubuntu 16.04 до 18.04 все еще приводит к некоторым проблемам

В некоторых системах может потребоваться версия 1.0 библиотек OpenSSL для подключения к SQL Server. Использование OpenSSL 1.0 можно сделать следующим образом:

Остановить SQL Server sudo systemctl stop mssql -s erver Откройте редактор для настройки сервиса sudo systemctl edit mssql -s erver В редакторе добавьте в файл следующие строки и сохраните его: [Service] Environment = "LD_LIBRARY_PATH =/Opt/MSSQL/Библиотека" Создание символических ссылок на OpenSSL 1.0 для использования SQL Server sudo ln -s/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0/opt/mssql/lib/libssl.so sudo ln -s/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0/opt/mssql/lib/libcrypto.so Запустите SQL Server sudo systemctl start mssql -s erver надеюсь, это поможет

Ответ 5

Сегодня обновил SQL Server до версии 14.0.3223.3-15 (Ubuntu 18.04.2 LTS) и получил точно такую же проблему как для локальных, так и для удаленных подключений. Откат к предыдущей версии (14.0.3192.2-2 в моем случае) работал для меня:

sudo apt-get install mssql-server=14.0.3192.2-2

Список версий, установленных на вашем компьютере:

apt-cache policy mssql-server

Ответ 6

У меня была та же самая проблема из контейнера докера, мне пришлось понизить версию msodbc, mssql-tools и lib ssl:

RUN ACCEPT_EULA=Y apt-get install msodbcsql17=17.3.1.1-1 mssql-tools=17.3.0.1-1 -y
RUN wget http://security.debian.org/debian-security/pool/updates/main/o/openssl1.0/libssl1.0.2_1.0.2s-1~deb9u1_amd64.deb \
    && dpkg -i libssl1.0.2_1.0.2s-1~deb9u1_amd64.deb

Теперь это работает как шарм.

На всякий случай более старые версии драйвера и инструментов ms odbc можно найти здесь: https://packages.microsoft.com/debian/9/prod/pool/main/m/

Для openssl: http://security-cdn.debian.org/debian-security/pool/updates/main/o/openssl1.0/

Ответ 7

Пожалуйста, вернитесь к более старой версии.... и работайте благодаря @Kurt Preston

sudo apt-get install mssql-server=14.0.3192.2-2

Ответ 8

Та же проблема. Это ужасно, потому что я нахожусь в dev сейчас и это "отличное" обновление просто убивает мое рабочее время.

Обновление: Мне помог откат версии MS SQL, но, к сожалению, я должен удалить все свои данные. Спасибо, что это была моя машинка для разработки. Все заметки ниже проверены на

ijin -> lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 19 Tara
Release:        19
Codename:       tara

1) Я удалил MS SQL и его данные

sudo rm -rf /var/opt/mssql
sudo apt-get purge mssql-server mssql-tools
sudo apt-get autoremove
sudo apt-get autoclean

2) Проверьте доступные версии MS SQL в репозитории

ijin -> apt-cache policy mssql-server

3) Установленный пользовательский MS SQL

sudo apt-get install mssql-server=15.0.1600.8-1 mssql-tools

4) Настройка

sudo /opt/mssql/bin/mssql-conf setup

5) Ограничение памяти, агент сервера

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true 
sudo /opt/mssql/bin/mssql-conf set memory.memorylimitmb 3072

4) Перезагрузка, статус

sudo service mssql-server restart
sudo service mssql-server status

Вероятно, есть некоторые проблемы с взаимодействием пакета openssl и обновленного MS SQL, я не могу найти, правда это или нет, но погуглил несколько замечаний по этому поводу. Таким образом, вы можете использовать

apt-cache policy openssl
sudo apt-get install openssl=<version>
openssl version

Чтобы изменить версию OpenSSL и попробуйте подключиться.

Ответ 9

После 2 дней работы над этой проблемой я наконец-то решил ее! В моем случае я использую Fedora 28, поэтому для тех, кто использует RHEL, я следовал этому руководству:

Установка Microsoft SQL Server в Red Hat Enterprise Linux 8, бета-версия

Итак, вы используете Python 3? По-видимому, вам нужно переключиться на Python 2 перед его установкой, используя следующий код (я думаю, что в Ubuntu также будет работать):

sudo alternatives --config python

Создать репозиторий из https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo

Загрузите его, а затем установите без разрешения зависимостей.

После этого вы можете запустить установку для mssql-conf:

sudo /opt/mssql/bin/mssql-conf setup

И продолжите учебное руководство по документации Microsoft с этого шага.

Microsoft Tutorial для установки SQL Server 2017 на RHEL
Microsoft Tutorial для установки SQL Server 2017 в Ubuntu

Примечание: я читал на некоторых форумах, что SQL Server 2019 может быть причиной этой проблемы, поэтому я рекомендую установить версию 2017 года.

Ответ 10

У меня та же проблема.

Моя ОС - Ubuntu 18.10

sudo apt-get install mssql-server=14.0.3192.2-2

Тогда в моем случае я не смог войти на свой SQL-сервер, потому что получил следующее сообщение

Sqlcmd: ошибка: драйвер 17 Microsoft ODBC для SQL Server: сбой входа для пользователя 'sa'. Причина: сервер находится в режиме обновления скрипта. Только администратор может подключиться в это время.

Затем я последовал за ответом ServerFault

В моем случае каждая команда занимала некоторое время.