Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 |