Problemen met mssql-python oplossen

Gebruik dit artikel om instructies voor probleemoplossing voor de mssql-python bestuurder te vinden. Begin met het symptoom of foutmelding dat bij jouw probleem past.

Installatieproblemen

pip-installatie mislukt of compileert vanaf broncode

Voor niet-ondersteunde Python-versies, ontbrekende wielen, inactieve virtuele omgevingen en ontbrekende Linux-bibliotheken, zie Probleemoplossing voor installatie- en verbindingsproblemen.

Conflicterende stuurprogramma-installaties

Voor importfouten of onverwacht gedrag wanneer mssql-python en pyodbc samen worden geïnstalleerd, zie Probleemoplossing voor installatie- en verbindingsproblemen.

Verbindingsproblemen

Kan geen verbinding maken met de server

Voor SQLSTATE08001, onbereikbare servers, gestopte services en Azure SQL firewallregels, zie Probleemoplossing voor installatie en verbindingsproblemen.

Aanmelden is mislukt

Voor SQLSTATE 28000, authenticatiemodus-mismatches, ongeldige inloggegevens en ontbrekende databasegebruikers, zie Probleemoplossing voor installatie en verbindingsproblemen.

Verbindingstijdoverschrijding

Voor SQLSTATE HYT00 of HYT01, netwerklatentie, trage servers en instellingen voor verbindingstimeout, zie Probleemoplossing voor installatie- en verbindingsproblemen.

SSL-certificaatfouten

Voor fouten in onbetrouwbare certificaten en veilige lokale ontwikkelopties, zie Probleemoplossing voor installatie en verbindingsproblemen.

Problemen met de uitvoering van query's

Tabel of object niet gevonden

Zie Problemen met query's, gegevens en bewerkingen oplossen voor SQLSTATE 42S02, databasecontext, schemakwalificatie en controles op het bestaan van tabellen.

Syntaxisfout

Voor SQLSTATE 42000, SQL-syntaxis, escape van tekenreeksen en geparameteriseerde query's, zie Problemen met query's, gegevens en bewerkingen oplossen.

Parameterfouten

Voor SQLSTATE 07001, placeholder-tellingen en ondersteunde parameterstijlen, zie Probleemoplossing voor query, data en operatieproblemen.

Datatypeproblemen

Fouten bij data-tijdconversie

Voor SQLSTATE- 22007 en datetime-parameterconversie, zie Probleemoplossing voor query, data en operatieproblemen.

Decimale precisieproblemen

Voor afgeknotte of afgeronde decimale waarden, zie Probleemoplossing voor query, data en operatieproblemen.

Unicode-coderingsproblemen

Voor verminkte speciale tekens en Unicode-kolomtypen raadpleegt u Problemen met query's, gegevens en bewerkingen oplossen.

Prestatieproblemen

Langzame query-uitvoering

Voor indexering, grote resultatensets en verbindingspooling, zie Probleemoplossing voor query, data en bewerkingsproblemen.

Geheugenproblemen met grote resultaten

Voor het streamen en pagineren van grote resultaatsets raadpleegt u Problemen met query's, gegevens en bewerkingen oplossen.

Transactieproblemen

Bereik van tijdelijke tabellen met autocommit

Voor tijdelijke tabellen die verdwijnen na rollback en DDL-instructies die autocommit vereisen, raadpleeg Problemen met query's, gegevens en bewerkingen oplossen.

Transactie niet gerealiseerd

Voor gegevenswijzigingen die niet blijven bestaan nadat de verbinding is gesloten, zie Probleemoplossing voor query, data en operationele problemen.

Deadlockfouten

Voor SQLSTATE 40001, herkansingsrichtlijnen en terugkerende deadlock-analyse, zie Probleemoplossing van query, data en operationele problemen.

Problemen met bulklading

Beperkingsovertredingen tijdens bulkcopy

Zie Problemen met query's, gegevens en bewerkingen oplossen voor schendingen van primaire sleutel-, unieke, controle- of foreign key-beperkingen tijdens het bulkkopiëren.

Kolomafbeeldingsfouten

Raadpleeg Problemen met query's, gegevens en bewerkingen oplossen voor problemen met het aantal kolommen bij bulkkopieën en afwijkingen in de kolomvolgorde.

Typeverschillen tijdens een bulkcopy

Raadpleeg Problemen met query’s, gegevens en bewerkingen oplossen voor afgeknotte, afgeronde of onjuiste waarden na bulk copy.

NumPy-type binding fouten

Voor parameterbindingsfouten met NumPy integer- of float-typen, zie Probleemoplossing voor query, data en operatieproblemen.

Bulkkopiëren met tijdelijke tabellen

Voor Invalid object name fouten wanneer je bulkcopy() gebruikt met een tijdelijke sessietabel, raadpleeg je Problemen met query's, gegevens en bewerkingen oplossen.

Container- en CI-problemen

Ontbrekende systeembibliotheken op Linux

Voor ontbrekende libltdl of Kerberos-bibliotheken in Linux-omgevingen, zie Probleemoplossing voor installatie- en verbindingsproblemen.

macOS SSL-fouten na installatie

Voor SSL-gerelateerde fouten op macOS, inclusief Apple silicon, zie Probleemoplossing voor installatie en verbindingsproblemen.

Diagnostische hulpmiddelen

Driver logging inschakelen

Gebruik mssql_python.setup_logging() om DEBUG-logging in te schakelen. De driver registreert SQL-instructies, parameters, interne ODBC-operaties en wijzigingen in de verbindingsstatus.

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")

Logbestanden gebruiken CSV-formaat en roteren automatisch op 512 MB met vijf back-ups. De driver saneert gevoelige gegevens zoals wachtwoorden en toegangstokens in loguitvoer.

Om applicatievermeldingen aan het driverlog toe te voegen, gebruik 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")

Waarschuwing

Logging brengt prestatie-overhead met zich mee. Schakel het alleen in als je een probleem hebt opgelost. Schakel het niet standaard in productie in.

Vraag om chauffeursinformatie

Haal de driverversie en servergegevens op van een actieve verbinding:

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)}")

Verbindingsstatus controleren

Voer een lichtgewicht query uit om te testen of een verbinding nog open is:

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")

Snelle referentie: Veelvoorkomende fouten

Fout SQLSTATE Veelvoorkomende oorzaak Problemen oplossen
Client kan geen verbinding tot stand brengen 08001 Server onbereikbaar Kan geen verbinding maken met de server
Aanmelden is mislukt 28000 Onjuiste referenties Login mislukt
Time-out verlopen HYT00 of HYT01 Traag netwerk Time-out van de verbinding
Ongeldige objectnaam 42S02 Onjuiste tabel of schema Tabel of object niet gevonden
Syntaxisfout 42000 SQL-fout Syntaxisfout
Beperkingsschending 23000 Overtreding van vreemde sleutel of primaire sleutel Beperkingsovertredingen tijdens bulkcopy
Impasse 40001 Conflict bij vergrendeling Deadlock-fouten