Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эту статью, чтобы найти руководство по mssql-python устранению неисправностей для водителя. Начните с симптома или сообщения об ошибке, которое соответствует вашей проблеме.
Проблемы с установкой
Установка pip завершается с ошибкой или выполняется сборка из исходного кода
Для неподдерживаемых версий Python, отсутствующих колёс, неактивных виртуальных сред и отсутствующих библиотек Linux см. раздел Устранение неполадок, установка и проблемы с подключением.
Конфликтующие установки драйверов
Для ошибок импорта или неожиданного поведения при mssql-pythonpyodbc совместной установке см. раздел «Устранение неполадок, установка и проблемы с подключением».
Проблемы с подключением
Не удаётся подключиться к серверу
Для SQLSTATE08001, недоступных серверов, остановленных сервисов и правил межсетевого экрана Azure SQL см. раздел Устранение неполадок с установкой и проблемами подключения.
Сбой входа
Для SQLSTATE 28000, несоответствий в режимах аутентификации, недействительных учетных данных и отсутствии пользователей базы данных см. раздел «Устранение неполадок: установка и проблемы с подключением».
Время соединения истекло
Для SQLSTATE HYT00 или HYT01, сетевой задержки, медленных серверов и тайм-аута соединения см. раздел Устранение неполадок установки и проблем с подключением.
Ошибки SSL-сертификата
Для ошибок ненадёжных сертификатов и безопасных вариантов локальной разработки смотрите раздел Устранение неполадок, установка и проблемы с подключением.
Проблемы с выполнением запросов
Таблица или объект не найден.
Сведения о SQLSTATE 42S02, контексте базы данных, квалификации схемы и проверке существования таблиц см. в разделе Устранение неполадок, связанных с запросами, данными и операциями.
Синтаксическая ошибка
Сведения о SQLSTATE 42000, синтаксисе SQL, экранировании строк и параметризованных запросах см. в Устранение неполадок с запросами, данными и операциями.
Ошибки параметров
Сведения о SQLSTATE 07001, количестве заполнителей и поддерживаемых стилях параметров см. в разделе Устранение неполадок, связанных с запросами, данными и операциями.
Проблемы с типами данных
Ошибки конвертации времени и даты
Сведения о SQLSTATE 22007 и преобразовании параметра datetime см. в разделе «Устранение неполадок, связанных с запросами, данными и операциями».
Проблемы с десятичной точностью
Для усечённых или округлённых десятичных значений см. раздел «Устранение неполадок, вопросы запроса, данных и эксплуатации».
Проблемы с кодированием Unicode
Для искажённых специальных символов и типов столбцов в Unicode см. раздел «Устранение неполадок: вопросы запроса, данных и операций».
Проблемы с производительностью
Медленное выполнение запросов
Для индексации, больших наборов результатов и пула соединений см. раздел «Устранение неполадок: вопросы запроса, данных и эксплуатации».
Проблемы с памятью при больших результатах
Для потоковой передачи и страницирования больших наборов результатов см. раздел Устранение неполадок, вопросы запросов, данных и эксплуатации.
Вопросы транзакций
Область видимости временной таблицы при автокоммите
Сведения о временных таблицах, исчезающих после отката, и операторах DDL, требующих автофиксации, см. в разделе Устранение неполадок с запросами, данными и операциями.
Сделка не была совершена
Для изменений данных, которые не сохраняются после закрытия соединения, см. раздел «Устранение неполадок, вопросы с данными и эксплуатацией».
Ошибки взаимоблокировки
Сведения о SQLSTATE 40001, рекомендации по повторным попыткам и анализ повторяющихся взаимоблокировок см. в разделе «Устранение неполадок, связанных с запросами, данными и операциями».
Проблемы с массовой нагрузкой
Нарушения ограничений во время массового копирования
Для нарушений первичного ключа, уникального, проверочного или внешнего ключа при массовом копировании см. раздел «Устранение неполадок, вопросы запроса, данных и эксплуатации».
Ошибки отображения столбцов
Для несоответствий количества столбцов и порядков колонок при массовом копировании см. раздел «Устранение неполадок: вопросы запроса, данных и эксплуатации».
Несоответствия типов при массовом копировании
Для усечённых, округлённых или неправильных значений после массового копирования см. раздел «Устранение неполадок: вопросы запроса, данных и эксплуатации».
Сбои связывания типа NumPy
Сведения об ошибках при привязке параметров с типами NumPy: целочисленными или с плавающей точкой см. в разделе Устранение неполадок с запросами, данными и операциями.
Массовое копирование с временными таблицами
Ошибки Invalid object name, возникающие при использовании bulkcopy() с временной таблицей сеанса, описаны в разделе «Устранение неполадок: проблемы с запросами, данными и операциями».
Вопросы контейнера и CI
Отсутствующие системные библиотеки в Linux
Если в среде Linux отсутствует libltdl или библиотеки Kerberos, см. Устранение неполадок при установке и подключении.
Ошибки macOS SSL после установки
Для ошибок, связанных с SSL, на macOS, включая Apple Silicon, см. раздел Диагностика установки и проблемы с подключением.
Средства диагностики
Включить логирование драйверов
Используйте mssql_python.setup_logging(), чтобы включить ведение журнала DEBUG. Драйвер фиксирует SQL-операторы, параметры, внутренние операции ODBC и изменения состояния соединения.
import mssql_python
# Enable logging to file (default)
mssql_python.setup_logging()
# Output to stdout (useful for CI/CD and containers)
mssql_python.setup_logging(output="stdout")
# Output to both file and stdout
mssql_python.setup_logging(output="both")
# Custom log file path (must use .txt, .log, or .csv extension)
mssql_python.setup_logging(log_file_path="/var/log/myapp/mssql.log")
Файлы журналов используют формат CSV; при достижении 512 МБ выполняется их автоматическая ротация с сохранением пяти резервных копий. Драйвер маскирует конфиденциальные данные, такие как пароли и токены доступа, в выводе журналов.
Чтобы добавить записи приложений в лог драйверов, используйте driver_logger:
import mssql_python
from mssql_python.logging import driver_logger
mssql_python.setup_logging()
driver_logger.debug("[App] Starting data processing")
driver_logger.error("[App] Failed to process record")
Предостережение
Логирование связано с накладными расходами по производительности. Включайте его только при устранении проблемы. Не включайте его в продакшене по умолчанию.
Получите информацию о водителях
Получите версию драйвера и данные сервера из активного соединения:
import mssql_python
conn = mssql_python.connect(connection_string)
print(f"Version: {mssql_python.__version__}")
print(f"Server name: {conn.getinfo(mssql_python.SQL_SERVER_NAME)}")
print(f"Database name: {conn.getinfo(mssql_python.SQL_DATABASE_NAME)}")
Проверка состояния подключения
Запустите лёгкий запрос, чтобы проверить, открыто ли соединение:
import mssql_python
try:
cursor = conn.cursor()
cursor.execute("SELECT 1")
print("Connection is open")
except mssql_python.Error:
print("Connection is closed or broken")
Краткая справка: Распространённые ошибки
| Ошибка | SQLSTATE | Распространенная причина | Устранение неполадок |
|---|---|---|---|
| Клиенту не удается установить подключение | 08001 |
Сервер недоступен | Не удаётся подключиться к серверу |
| Сбой входа | 28000 |
Неправильные учетные данные | Неудачный вход |
| Время ожидания истекло. |
HYT00 или HYT01 |
Медленная сеть | Время ожидания соединения |
| Недопустимое имя объекта | 42S02 |
Неправильная таблица или схема | Таблица или объект не найден. |
| Синтаксическая ошибка | 42000 |
Ошибка SQL | Синтаксическая ошибка |
| Нарушение ограничений | 23000 |
Нарушение внешнего ключа или первичного ключа | Нарушения ограничений во время массового копирования |
| Deadlock | 40001 |
Конкуренция за блокировку | Ошибки взаимоблокировки |