Ошибка: поставщик 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 работает.
Просто сделайте следующее:
Остановить SQL Server
sudo systemctl stop mssql-server
Откройте редактор для настройки сервиса с помощью
sudo systemctl edit mssql-server
Это создаст переопределение для исходной конфигурации службы. Правильно, что файл переопределения или, точнее, "drop-in-file", пуст при первом использовании.
В редакторе добавьте в файл следующие строки и сохраните его:
[Service]
Environment="LD_LIBRARY_PATH=/opt/mssql/lib"
Создайте символические ссылки на 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 Запустите 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
В моем случае каждая команда занимала некоторое время.