- Вопрос или проблема
- В моем случае это ‘ANSI_X3.4-1968’, так что должно быть что-то неправильно. Я дополнительно изучу статьи, предложенные в документации, но сейчас не знаю, как подтвердить, что у меня действительно установлено два драйвера, и как удалить один.
- Ответ или решение
- 1. Проверка статуса службы SQL Server
- 2. Проверка конфигурации SQL Server для подключения
- 3. Проверка настроек файрвола
- 4. Проверка сетевых подключений
- 5. Обновление драйверов ODBC
- 6. Место на диске
- 7. Обновление SQL Server
- 8. Проверка логов SQL Server
- Заключение
Вопрос или проблема
Сегодня я обновил свой сервер с помощью всех ожидающих обновлений, и после перезагрузки не смог подключиться к SQL серверу. Перед перезагрузкой я также включил брандмауэр, но теперь он снова отключен, и сервер был перезагружен еще раз. Когда я пытаюсь подключиться локально с помощью
sqlcmd -S localhost
я получаю ошибку:
Sqlcmd: Ошибка: Microsoft ODBC Driver 17 for SQL Server : Таймаут входа истек.
Sqlcmd: Ошибка: Microsoft ODBC Driver 17 for SQL Server : TCP Provider: Код ошибки 0x2749.
Sqlcmd: Ошибка: Microsoft ODBC Driver 17 for SQL Server : Произошла ошибка, связанная с сетью или конкретным экземпляром, при установке соединения с SQL Server. Сервер не найден или недоступен. Проверьте правильность имени экземпляра и настройку SQL Server для разрешения удаленных подключений. Для получения дополнительной информации смотрите SQL Server Books Online..
Сам сервер работает:
hyperqbe@slaro:/etc$ sudo systemctl status mssql-server
[sudo] пароль пользователя hyperqbe:
● mssql-server.service - Microsoft SQL Server Database Engine
Загружено: загружено (/lib/systemd/system/mssql-server.service; включено; превалентный параметр: включено)
Активно: активно (работает) с Чт 08 авг 2019 15:06:28 CEST; 19мин назад
Документы: https://docs.microsoft.com/en-us/sql/linux
Основной PID: 7259 (sqlservr)
Задачи: 158
CGroup: /system.slice/mssql-server.service
├─7259 /opt/mssql/bin/sqlservr
└─7288 /opt/mssql/bin/sqlservr
08 авг 15:06:38 slaro sqlservr[7259]: [95B blob data]
08 авг 15:06:38 slaro sqlservr[7259]: [91B blob data]
08 авг 15:06:38 slaro sqlservr[7259]: [145B blob data]
08 авг 15:06:38 slaro sqlservr[7259]: [61B blob data]
08 авг 15:06:39 slaro sqlservr[7259]: [96B blob data]
08 авг 15:06:39 slaro sqlservr[7259]: [66B blob data]
08 авг 15:06:40 slaro sqlservr[7259]: [96B blob data]
08 авг 15:06:40 slaro sqlservr[7259]: [100B blob data]
08 авг 15:06:40 slaro sqlservr[7259]: [71B blob data]
08 авг 15:06:40 slaro sqlservr[7259]: [124B blob data]
Я также не могу подключиться удаленно с другого компьютера:
TITLE: Подключение к серверу
------------------------------
Не удается подключиться к 192.168.1.141.
------------------------------
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Соединение было успешно установлено с сервером, но затем произошла ошибка в процессе входа. (поставщик: SSL Provider, ошибка: 0 - Существующее соединение было резко закрыто удаленным хостом.) (Microsoft SQL Server, Ошибка: 10054)
Для справки нажмите: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=10054&LinkId=20476
Насколько я знаю, во время процесса обновления не было ошибок.
Вот последние записи из errorlog:
2019-08-08 15:06:34.89 Server Microsoft SQL Server 2019 (CTP3.2) - 15.0.1800.32 (X64)
17 Июл 2019 21:29:33
Авторское право (C) 2019 Microsoft Corporation
Express Edition (64-разрядная) на Linux (Ubuntu 18.04.3 LTS) <X64>
2019-08-08 15:06:34.89 Server Корректировка UTC: 2:00
2019-08-08 15:06:34.89 Server (c) Microsoft Corporation.
2019-08-08 15:06:34.89 Server Все права защищены.
2019-08-08 15:06:34.89 Server Идентификатор процесса сервера равен 32.
2019-08-08 15:06:34.89 Server Логи сообщений SQL Server в файле '/var/opt/mssql/log/errorlog'.
2019-08-08 15:06:34.89 Server Параметры запуска из реестра:
-d /var/opt/mssql/data/master.mdf
-l /var/opt/mssql/data/mastlog.ldf
-e /var/opt/mssql/log/errorlog
2019-08-08 15:06:34.90 Server SQL Server обнаружил 1 сокет с 4 ядрами на сокет и 4 логическими процессорами на сокет, всего 4 логических процессора; использует 4 логических процессоров на основе лицензирования SQL Server. Это информационное сообщение; никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:34.90 Server SQL Server запускается с нормальным приоритетом (=7). Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:34.90 Server Обнаружено 12800 МБ ОЗУ. Это информационное сообщение; никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:34.90 Server Использование обычной памяти в менеджере памяти.
2019-08-08 15:06:34.90 Server Bitmap исключения страницы включен.
2019-08-08 15:06:35.01 Server Расширение пула буферов не поддерживается на платформе Linux.
2019-08-08 15:06:35.02 Server Пул буферов: выделяется 2097152 байт для 1963331 hashPages.
2019-08-08 15:06:35.16 Server Сортировка по умолчанию: SQL_Latin1_General_CP1_CI_AS (us_english 1033)
2019-08-08 15:06:35.69 Server Расширение пула буферов уже отключено. Никакие действия не требуются.
2019-08-08 15:06:35.99 Server Успешно инициализирована конфигурация TLS. Разрешенные версии протокола TLS: ['1.0 1.1 1.2']. Разрешенные шифры TLS: ['ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA'].
2019-08-08 15:06:36.01 Server Настройки Query Store инициализированы с включенной = 1,
2019-08-08 15:06:36.07 Server Максимальное количество выделенных соединений администратора для этого экземпляра составляет '1'
2019-08-08 15:06:36.07 Server Конфигурация узла: узел 0: Маска ЦП: 0x000000000000000f:0 Активная маска ЦП: 0x000000000000000f:0. Это сообщение предоставляет описание конфигурации NUMA для этого компьютера. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:36.11 Server Используется динамическое распределение замков. Начальное распределение 2500 блоков замков и 5000 блоков владельца замков на каждый узел. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:36.17 Server In-Memory OLTP инициализирован на машине начального уровня.
2019-08-08 15:06:36.37 Server Загружена версия CLR v4.0.30319.
2019-08-08 15:06:36.57 Server [ИНФОРМАЦИЯ] Создана сессия расширенных событий 'hkenginexesession'
2019-08-08 15:06:36.58 Server Инициализация мгновенного файла базы данных: включена. Для соображений безопасности и производительности смотрите тему 'Инициализация мгновенного файла базы данных' в SQL Server Books Online. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:36.59 Server Общее количество потоков записи журнала: 2. Это информационное сообщение; никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:36.72 Server clflushopt выбран для операции очистки pmem.
2019-08-08 15:06:36.72 Server Показатели использования программного обеспечения отключены.
2019-08-08 15:06:36.97 spid11s [1]. Статус функции: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.
2019-08-08 15:06:36.98 spid11s Запуск базы данных 'master'.
2019-08-08 15:06:37.58 Server Инициализирована функциональность общего языка (CLR).
2019-08-08 15:06:37.77 spid11s Аудит SQL Server начинает аудит. Это информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:37.78 spid11s Аудит SQL Server начал аудит. Это информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.05 Server Не удалось проверить подпись Authenticode 'C:\binn\secforwarder.dll'. Проверка подписи библиотек SQL Server будет пропущена. Подлинные копии SQL Server подписаны. Невозможность проверить подпись Authenticode может указывать на то, что это не подлинный релиз SQL Server. Установите подлинную копию SQL Server или свяжитесь с поддержкой.
2019-08-08 15:06:38.11 spid11s ID трассировки SQL 1 был начат входом "sa".
2019-08-08 15:06:38.27 spid11s Имя сервера - 'slaro'. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.29 spid29s Always On: Диспетчер доступной реплики запускается. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.29 spid29s Always On: Диспетчер доступной реплики ждет, когда экземпляр SQL Server разрешит клиентские подключения. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.30 spid11s [4]. Статус функции: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.
2019-08-08 15:06:38.30 spid11s Запускается база данных 'msdb'.
2019-08-08 15:06:38.32 spid12s [32767]. Статус функции: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.
2019-08-08 15:06:38.32 spid12s Запускается база данных 'mssqlsystemresource'.
2019-08-08 15:06:38.33 spid12s Версия сборки базы данных ресурсов составляет 15.00.1800. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.36 spid12s [3]. Статус функции: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.
2019-08-08 15:06:38.36 spid12s Запускается база данных 'model'.
2019-08-08 15:06:38.40 Server Не удалось проверить подпись Authenticode 'C:\binn\msoledbsql.dll'. Проверка подписи библиотек SQL Server будет пропущена. Подлинные копии SQL Server подписаны. Невозможность проверить подпись Authenticode может указывать на то, что это не подлинный релиз SQL Server. Установите подлинную копию SQL Server или свяжитесь с поддержкой.
2019-08-08 15:06:38.48 spid28s Успешно загружен сертификат, сгенерированный самостоятельно, для шифрования.
2019-08-08 15:06:38.51 Server Ошибка: 37308, Уровень: 16, Состояние: 1.
2019-08-08 15:06:38.51 Server Загружен None enclave для всегда зашифрованного.
2019-08-08 15:06:38.51 spid28s Сервер слушает на [ 192.168.1.141 <ipv4> 1433].
2019-08-08 15:06:38.54 spid28s Поддержка выделенного соединения администратора не была запущена, потому что она отключена в этой версии SQL Server. Если вы хотите использовать выделенное соединение администратора, перезапустите SQL Server, используя флаг трассировки 7806. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.54 spid28s Ошибка: 39002, Уровень: 16, Состояние: 1.
2019-08-08 15:06:38.54 spid28s SQL не удалось загрузить расширяемость по коду ошибки 0x80070005.
2019-08-08 15:06:38.55 spid28s InitializeXdbPkgLauncher не удалась. Код ошибки: 0x80004005.
2019-08-08 15:06:38.55 spid28s SQL Server теперь готов к подключению клиентов. Это информационное сообщение; никаких действий со стороны пользователя не требуется.
2019-08-08 15:06:38.85 spid12s Очистка базы данных tempdb.
2019-08-08 15:06:39.88 spid12s [2]. Статус функции: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.
2019-08-08 15:06:39.89 spid12s Запускается база данных 'tempdb'.
2019-08-08 15:06:40.26 spid29s Точка доступа Service Broker находится в состоянии отключения или остановлена.
2019-08-08 15:06:40.26 spid29s Точка доступа Mirroring базы данных находится в состоянии отключения или остановлена.
2019-08-08 15:06:40.27 spid29s Диспетчер Service Broker запущен.
2019-08-08 15:06:40.27 spid11s Восстановление завершено. Это только информационное сообщение. Никаких действий со стороны пользователя не требуется.
2019-08-08 15:27:16.30 spid55 [5]. Статус функции: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.
2019-08-08 15:27:16.30 spid55 Запускается база данных 'ProgramMagazynowy'.
2019-08-08 15:27:16.53 spid55 Параллельное восстановление запущено для базы данных 'ProgramMagazynowy' с размером пула рабочих процессов [2].
2019-08-08 15:27:16.73 spid55 Параллельное восстановление завершено для базы данных 'ProgramMagazynowy' с размером пула рабочих процессов [2].
Это может быть связано с драйвером ODBC. Мне удалось включить ведение журнала и я нашел следующее:
[ODBC][29210][1565333226.007247][SQLDriverConnectW.c][290]
Вход:
Соединение = 0x8c90e0
Рукоятка окна = (nil)
Входная строка = [DRIVER={ODBC Driver 17 for SQL Server};SERVER={192.168.1.141};Trusted_Connection={YES};WSID={slaro};APP={SQLCMD};][длина = 113 (SQL_NTS)]
Выходная строка = (nil)
Максимальная выходная строка = 0
Указатель на выходную строку = (nil)
Завершение = 0
UNICODE Использование кодировки ASCII 'ANSI_X3.4-1968' и UNICODE 'UTF-16LE'
Согласно Документации
Если кодировка символов ASCII не UTF-8, установлено более одного
Диспетчер драйверов, и ваше приложение использует неправильный, или Диспетчер драйверов был неправильно собран.
В моем случае это ‘ANSI_X3.4-1968’, так что должно быть что-то неправильно. Я дополнительно изучу статьи, предложенные в документации, но сейчас не знаю, как подтвердить, что у меня действительно установлено два драйвера, и как удалить один.
ИЗМЕНЕНИЕ:
odbcinst показывает только один драйвер:
hyperqbe@slaro:/etc$ odbcinst -q -d
[ODBC Driver 17 for SQL Server]
Эта часть, похоже, в порядке. Я не уверен, правильно ли у меня определены odbc.ini и odbcinst.ini.
hyperqbe@slaro:/etc$ cat odbc.ini
[slaro]
Driver="ODBC Driver 17 for SQL Server"
Servername=192.168.1.141
hyperqbe@slaro:/etc$ cat odbcinst.ini
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.4.so.1.1
UsageCount=1
Trace=Yes
TraceFile=/home/hyperqbe/odbc.log
=======================================
ИЗМЕНЕНИЕ ((детали ufw по запросу)):
hyperqbe@slaro:~$ sudo ufw status
[sudo] пароль пользователя hyperqbe:
Статус: активен
Для Действие В
-- --------- -
27 ALLOW Anywhere
1433 ALLOW Anywhere
1434 ALLOW Anywhere
8686 ALLOW Anywhere
27 (v6) ALLOW Anywhere (v6)
1433 (v6) ALLOW Anywhere (v6)
1434 (v6) ALLOW Anywhere (v6)
8686 (v6) ALLOW Anywhere (v6)
22/tcp REJECT OUT Anywhere
22/tcp (v6) REJECT OUT Anywhere (v6)
hyperqbe@slaro:~$ sudo iptables --list
Цепь INPUT (политика DROP)
цель протокол opt источник назначение
ufw-before-logging-input all -- everywhere everywhere
ufw-before-input all -- everywhere everywhere
ufw-after-input all -- everywhere everywhere
ufw-after-logging-input all -- everywhere everywhere
ufw-reject-input all -- everywhere everywhere
ufw-track-input all -- everywhere everywhere
Цепь FORWARD (политика DROP)
цель протокол opt источник назначение
ufw-before-logging-forward all -- everywhere everywhere
ufw-before-forward all -- everywhere everywhere
ufw-after-forward all -- everywhere everywhere
ufw-after-logging-forward all -- everywhere everywhere
ufw-reject-forward all -- everywhere everywhere
ufw-track-forward all -- everywhere everywhere
Цепь OUTPUT (политика ACCEPT)
цель протокол opt источник назначение
ufw-before-logging-output all -- everywhere everywhere
ufw-before-output all -- everywhere everywhere
ufw-after-output all -- everywhere everywhere
ufw-after-logging-output all -- everywhere everywhere
ufw-reject-output all -- everywhere everywhere
ufw-track-output all -- everywhere everywhere
Цепь ufw-after-forward (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-after-input (1 ссылка)
цель протокол opt источник назначение
ufw-skip-to-policy-input udp -- everywhere everywhere udp dpt:netbios-ns
ufw-skip-to-policy-input udp -- everywhere everywhere udp dpt:netbios-dgm
ufw-skip-to-policy-input tcp -- everywhere everywhere tcp dpt:netbios-ssn
ufw-skip-to-policy-input tcp -- everywhere everywhere tcp dpt:microsoft-ds
ufw-skip-to-policy-input udp -- everywhere everywhere udp dpt:bootps
ufw-skip-to-policy-input udp -- everywhere everywhere udp dpt:bootpc
ufw-skip-to-policy-input all -- everywhere everywhere ADDRTYPE match dst-type BROADCAST
Цепь ufw-after-logging-forward (1 ссылка)
цель протокол opt источник назначение
LOG all -- everywhere everywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
Цепь ufw-after-logging-input (1 ссылка)
цель протокол opt источник назначение
LOG all -- everywhere everywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
Цепь ufw-after-logging-output (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-after-output (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-before-forward (1 ссылка)
цель протокол opt источник назначение
ACCEPT all -- everywhere everywhere ctstate RELATED,ESTABLISHED
ACCEPT icmp -- everywhere everywhere icmp destination-unreachable
ACCEPT icmp -- everywhere everywhere icmp time-exceeded
ACCEPT icmp -- everywhere everywhere icmp parameter-problem
ACCEPT icmp -- everywhere everywhere icmp echo-request
ufw-user-forward all -- everywhere everywhere
Цепь ufw-before-input (1 ссылка)
цель протокол opt источник назначение
ACCEPT all -- everywhere everywhere
ACCEPT all -- everywhere everywhere ctstate RELATED,ESTABLISHED
ufw-logging-deny all -- everywhere everywhere ctstate INVALID
DROP all -- everywhere everywhere ctstate INVALID
ACCEPT icmp -- everywhere everywhere icmp destination-unreachable
ACCEPT icmp -- everywhere everywhere icmp time-exceeded
ACCEPT icmp -- everywhere everywhere icmp parameter-problem
ACCEPT icmp -- everywhere everywhere icmp echo-request
ACCEPT udp -- everywhere everywhere udp spt:bootps dpt:bootpc
ufw-not-local all -- everywhere everywhere
ACCEPT udp -- everywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp -- everywhere 239.255.255.250 udp dpt:1900
ufw-user-input all -- everywhere everywhere
Цепь ufw-before-logging-forward (0 ссылок)
цель протокол opt источник назначение
Цепь ufw-before-logging-input (0 ссылок)
цель протокол opt источник назначение
Цепь ufw-before-logging-output (0 ссылок)
цель протокол opt источник назначение
Цепь ufw-before-output (1 ссылка)
цель протокол opt источник назначение
ACCEPT all -- everywhere everywhere
ACCEPT all -- everywhere everywhere ctstate RELATED,ESTABLISHED
ufw-user-output all -- everywhere everywhere
Цепь ufw-logging-allow (0 ссылок)
цель протокол opt источник назначение
LOG all -- everywhere everywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW ALLOW] "
Цепь ufw-logging-deny (2 ссылки)
цель протокол opt источник назначение
RETURN all -- everywhere everywhere ctstate INVALID limit: avg 3/min burst 10
LOG all -- everywhere everywhere limit: avg 3/min burst 10 LOG level warning prefix "[UFW BLOCK] "
Цепь ufw-not-local (1 ссылка)
цель протокол opt источник назначение
RETURN all -- everywhere everywhere ADDRTYPE match dst-type LOCAL
RETURN all -- everywhere everywhere ADDRTYPE match dst-type MULTICAST
RETURN all -- everywhere everywhere ADDRTYPE match dst-type BROADCAST
ufw-logging-deny all -- everywhere everywhere limit: avg 3/min burst 10
DROP all -- everywhere everywhere
Цепь ufw-reject-forward (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-reject-input (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-reject-output (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-skip-to-policy-forward (0 ссылок)
цель протокол opt источник назначение
DROP all -- everywhere everywhere
Цепь ufw-skip-to-policy-input (7 ссылок)
цель протокол opt источник назначение
DROP all -- everywhere everywhere
Цепь ufw-skip-to-policy-output (0 ссылок)
цель протокол opt источник назначение
ACCEPT all -- everywhere everywhere
Цепь ufw-track-forward (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-track-input (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-track-output (1 ссылка)
цель протокол opt источник назначение
ACCEPT tcp -- everywhere everywhere ctstate NEW
ACCEPT udp -- everywhere everywhere ctstate NEW
Цепь ufw-user-forward (1 ссылка)
цель протокол opt источник назначение
Цепь ufw-user-input (1 ссылка)
цель протокол opt источник назначение
ACCEPT tcp -- everywhere everywhere tcp dpt:27
ACCEPT udp -- everywhere everywhere udp dpt:27
ACCEPT tcp -- everywhere everywhere tcp dpt:ms-sql-s
ACCEPT udp -- everywhere everywhere udp dpt:ms-sql-s
ACCEPT tcp -- everywhere everywhere tcp dpt:ms-sql-m
ACCEPT udp -- everywhere everywhere udp dpt:ms-sql-m
ACCEPT tcp -- everywhere everywhere tcp dpt:8686
ACCEPT udp -- everywhere everywhere udp dpt:8686
Цепь ufw-user-limit (0 ссылок)
цель протокол opt источник назначение
LOG all -- everywhere everywhere limit: avg 3/min burst 5 LOG level warning prefix "[UFW LIMIT BLOCK] "
REJECT all -- everywhere everywhere reject-with icmp-port-unreachable
Цепь ufw-user-limit-accept (0 ссылок)
цель протокол opt источник назначение
ACCEPT all -- everywhere everywhere
Цепь ufw-user-logging-forward (0 ссылок)
цель протокол opt источник назначение
Цепь ufw-user-logging-input (0 ссылок)
цель протокол opt источник назначение
Цепь ufw-user-logging-output (0 ссылок)
цель протокол opt источник назначение
Цепь ufw-user-output (1 ссылка)
цель протокол opt источник назначение
REJECT tcp -- everywhere everywhere tcp dpt:ssh reject-with tcp-reset
Я нашел пост, предлагающий, что проблема может быть вызвана python.
Пожалуйста, проверьте эту ссылку, это сработало для меня. Похоже, это проблема с версией openssl, что-то, что было исправлено Microsoft в CU10 для MSSQL и вернулось в CU16.
Я также вдруг не смог больше подключиться к моему SQL серверу. Это случилось из-за нехватки места. Поэтому я освободил место и перезапустил службу apache2 (или перезагрузил весь сервер, если это не сработает).
Ответ или решение
Уважаемый пользователь,
Проблема с подключением к вашему SQL Server после обновления системы может иметь несколько причин. На основании предоставленных вами данных, давайте рассмотрим основные шаги и потенциальные решения, которые могут помочь решить данную проблему:
1. Проверка статуса службы SQL Server
Судя по вашему выводу, SQL Server активен и работает. Но прежде чем двигаться дальше, давайте убедимся, что он действительно принимает подключения. Выполните следующую команду:
sudo systemctl status mssql-server
Проверьте, нет ли ошибок при запуске, а также убедитесь, что служба работает без сбоев.
2. Проверка конфигурации SQL Server для подключения
Убедитесь, что SQL Server настроен на прием удаленных подключений:
-
Откройте SQL Server Management Studio (SSMS) и выполните:
EXEC sp_configure 'remote access', 1; RECONFIGURE;
-
Проверьте, разрешено ли использование TCP/IP, выполнив:
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'tcp enabled';
3. Проверка настроек файрвола
Вы указали, что ваш файрвол (UFW) активен, и порты 1433 и 1434 открыты. Тем не менее, может иметь смысл пересмотреть настройки и убедиться, что SQL Server может общаться по сети:
sudo ufw status verbose
Убедитесь, что все нужные порты (1433, 1434 и др.) действительно открыты и не блокируются другими правилами.
4. Проверка сетевых подключений
Попробуйте выполнить команду на вашем сервере, чтобы убедиться, что SQL Server слушает на нужных портах:
sudo netstat -tuln | grep 1433
Эта команда должна показать, что процесс SQL Server слушает на порту 1433. Если этого не происходит, возможно, SQL Server не настроен на использование данного порта.
5. Обновление драйверов ODBC
Вы предполагаете, что проблема может быть связана с драйверами ODBC. Попробуйте переустановить драйвер:
sudo apt-get remove msodbcsql17
sudo apt-get install msodbcsql17
После этого проверьте ваши файлы odbc.ini
и odbcinst.ini
на наличие ошибок конфигурации. Убедитесь, что они правильно указывают на драйвер и сервер.
6. Место на диске
Проблема с подключением также может быть связана с нехваткой места на диске. Убедитесь, что на диске достаточно свободного пространства:
df -h
Если место заканчивается, освободите его, удалив ненужные файлы и перезапустите службу SQL Server.
7. Обновление SQL Server
Если после выполнения всех предыдущих шагов проблема не решена, возможно, стоит подумать о том, чтобы обновить SQL Server до последней версии, чтобы исправить потенциальные ошибки, связанные с применением патчей.
sudo apt-get update
sudo apt-get upgrade mssql-server
8. Проверка логов SQL Server
Обратите внимание на логи SQL Server, так как в них могут быть указаны более конкретные ошибки, которые помогут диагностировать проблему. Логи находятся по пути: /var/opt/mssql/log/errorlog
.
Заключение
Если после выполнения всех этих шагов проблема остается нерешенной, стоит рассмотреть возможность обращения в службу поддержки Microsoft или на специализированные форумы, где сообщество пользователей может предложить дополнительные варианты решения.
Надеюсь, эти рекомендации помогут вам восстановить соединение с SQL Server. Если у вас есть дополнительные вопросы, не стесняйтесь задавать их.