Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Skorzystaj z tego artykułu, aby znaleźć wskazówki dotyczące rozwiązywania problemów ze sterownikiem mssql-python . Zacznij od objawu lub komunikatu o błędzie, który pasuje do Twojego problemu.
Problemy z instalacją
Instalacja pip kończy się niepowodzeniem lub pakiet jest kompilowany ze źródeł
W przypadku nieobsługiwanych wersji Python, brakujących kół, nieaktywnych środowisk wirtualnych oraz brakujących bibliotek Linuksa zobacz Rozwiązywanie problemów z instalacją i połączeniem.
Konfliktowe instalacje sterowników
W przypadku błędów importowania lub nieoczekiwanego działania, gdy składniki mssql-python i pyodbc są zainstalowane razem, zobacz Rozwiązywanie problemów z instalacją i połączeniem.
Problemy z połączeniem
Nie można połączyć się z serwerem
W przypadku SQLSTATE 08001, niedostępnych serwerów, zatrzymanych usług i reguł zapory Azure SQL zobacz artykuł Rozwiązywanie problemów z instalacją i połączeniem.
Logowanie nie powiodło się
W przypadku SQLSTATE 28000, niezgodności trybów uwierzytelniania, nieprawidłowych danych uwierzytelniających i brakujących użytkowników bazy danych, zobacz Rozwiązywanie problemów z instalacją i połączeniem.
Przekroczenie limitu czasu połączenia
Aby uzyskać informacje o SQLSTATE HYT00 lub HYT01, opóźnieniach sieci, wolnych serwerach oraz ustawieniach limitu połączenia, zobacz Troubleshoot installation and connection issues.
Błędy certyfikatu SSL
W przypadku błędów związanych z niezaufanym certyfikatem oraz bezpiecznych opcji lokalnego programowania zobacz Troubleshoot installation and connection issues.
Problemy z wykonywaniem zapytań
Tabela lub obiekt nie znaleziony
Informacje na temat SQLSTATE 42S02, kontekstu bazy danych, kwalifikowania schematem oraz sprawdzania istnienia tabel można znaleźć w artykule Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Błąd składniowy
Informacje o SQLSTATE 42000, składni SQL, sekwencjach ucieczki w ciągach znaków i zapytaniach parametryzowanych można znaleźć w sekcji Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Błędy parametrów
Informacje o SQLSTATE 07001, liczbie symboli zastępczych i obsługiwanych stylach parametrów można znaleźć w temacie Troubleshoot query, data, and operation issues.
Problemy z typem danych
Błędy konwersji daty i godziny
Informacje na temat konwersji parametrów SQLSTATE 22007 i datetime można znaleźć w artykule Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Problemy z precyzją dziesiętną
Informacje o obciętych lub zaokrąglonych wartościach dziesiętnych zawiera temat Troubleshoot query, data, and operation issues.
Problemy z kodowaniem Unicode
W przypadku zniekształconych znaków specjalnych oraz kolumn typu Unicode zobacz Troubleshoot query, data, and operation issues.
Problemy z wydajnością
Powolne wykonywanie zapytań
Informacje na temat indeksowania, dużych zbiorów wyników i puli połączeń można znaleźć w temacie Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Problemy z pamięcią w przypadku dużych wyników
Informacje o strumieniowaniu i paginacji dużych zbiorów wyników znajdziesz w artykule Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Problemy transakcyjne
Zakres tabeli tymczasowej z automatycznym zatwierdzeniem
Informacje na temat tabel tymczasowych, które znikają po wycofaniu, oraz instrukcji DDL wymagających automatycznego zatwierdzania znajdują się w sekcji Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Transakcja nie została dokonana
W przypadku zmian danych, które nie są zachowywane po zamknięciu połączenia, zobacz Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Błędy zakleszczeń
Aby uzyskać informacje na temat SQLSTATE 40001, wskazówek dotyczących ponawiania prób oraz analizy powtarzających się zakleszczeń, zobacz Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Problemy z obciążeniem zbiorczym
Naruszenia ograniczeń podczas kopiowania zbiorczego
W przypadku naruszeń ograniczeń klucza podstawowego, unikatowego, CHECK lub klucza obcego podczas kopiowania masowego zobacz Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Błędy odwzorowania kolumn
Informacje o niezgodnościach liczby kolumn i kolejności kolumn podczas kopiowania zbiorczego można znaleźć w Troubleshoot query, data, and operation issues.
Niezgodności typów podczas kopiowania masowego
Informacje na temat obciętych, zaokrąglonych lub nieprawidłowych wartości po kopiowaniu zbiorczym można znaleźć w artykule Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Awarie wiązania typu NumPy
W przypadku błędów podczas wiązania parametrów z typami całkowitymi lub zmiennoprzecinkowymi biblioteki NumPy zobacz Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Kopiowanie zbiorcze z tabelami tymczasowymi
Informacje o Invalid object name błędach występujących podczas używania bulkcopy() z tymczasową tabelą sesji można znaleźć w artykule Rozwiązywanie problemów z zapytaniami, danymi i operacjami.
Problemy z kontenerami i CI
Brakujące biblioteki systemowe na Linuksie
W przypadku braku elementu libltdl lub bibliotek Kerberos w środowiskach systemu Linux zobacz artykuł Rozwiązywanie problemów z instalacją i połączeniem.
Błędy SSL w systemie macOS po instalacji
W przypadku błędów związanych z SSL w systemie macOS, w tym na komputerach z Apple silicon, zobacz temat Rozwiązywanie problemów z instalacją i połączeniem.
Narzędzia diagnostyczne
Włącz logowanie sterowników
Użyj mssql_python.setup_logging() do włączenia logowania DEBUG. Sterownik rejestruje instrukcje SQL, parametry, wewnętrzne operacje ODBC oraz zmiany stanu połączenia.
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")
Pliki logów mają format CSV i są automatycznie rotowane po osiągnięciu rozmiaru 512 MB, z zachowaniem pięciu kopii zapasowych. Sterownik oczyszcza wrażliwe dane, takie jak hasła i tokeny dostępu, w wyjściu dziennika.
Aby dodać wpisy aplikacji do logu sterownika, użyj 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")
Caution
Rejestrowanie powoduje narzut wydajnościowy. Włącz go tylko wtedy, gdy rozwiązujesz problem. Domyślnie nie włączaj tego w produkcji.
Uzyskaj informacje o kierowcy
Pobierz wersję sterownika i szczegóły serwera z aktywnego połączenia:
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)}")
Sprawdzanie stanu połączenia
Uruchom lekkie zapytanie, aby sprawdzić, czy połączenie jest nadal otwarte:
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")
Szybkie odniesienie: Typowe błędy
| Błąd | SQLSTATE | Typowa przyczyna | Rozwiązywanie problemów |
|---|---|---|---|
| Klient nie może nawiązać połączenia | 08001 |
Serwer jest niedostępny | Nie można połączyć się z serwerem |
| Logowanie nie powiodło się | 28000 |
Niepoprawne poświadczenia | Logowanie się nie udało |
| Upłynął limit czasu |
HYT00 lub HYT01 |
Powolna sieć | Przekroczenie limitu czasu połączenia |
| Nieprawidłowa nazwa obiektu | 42S02 |
Nieprawidłowa tabela lub schemat | Tabela lub obiekt nie znaleziony |
| Błąd składniowy | 42000 |
Błąd SQL | Błąd składniowy |
| Naruszenie ograniczeń | 23000 |
Naruszenie klucza obcego lub klucza podstawowego | Naruszenia ograniczeń podczas kopiowania zbiorczego |
| Zakleszczenie | 40001 |
Zawartość blokady | Błędy zakleszczenia |