Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diesen Artikel, um Informationen zur Problembehandlung für den mssql-pythonTreiber zu finden. Beginne mit dem Symptom oder der Fehlermeldung, die zu deinem Problem passt.
Installationsprobleme
pip install schlägt fehl oder erstellt aus dem Quellcode
Für nicht unterstützte Python-Versionen, fehlende Räder, inaktive virtuelle Umgebungen und fehlende Linux-Bibliotheken siehe Installations- und Verbindungsprobleme im Troubleshoot.
Widersprüchliche Treiberinstallationen
Für Importfehler oder unerwartetes Verhalten, wenn mssql-python und pyodbc zusammen installiert werden, siehe Fehlerbehebung von Installation und Verbindungsproblemen.
Verbindungsprobleme
Keine Verbindung zum Server möglich
Für SQLSTATE 08001, unerreichbare Server, gestoppte Dienste und Azure SQL-Firewall-Regeln siehe Behandeln von Installations- und Verbindungsproblemen.
Fehler bei der Anmeldung
Für SQLSTATE 28000, Authentifizierungsmodus-Fehlanpassungen, ungültige Zugangsdaten und fehlende Datenbankbenutzer siehe Fehlerbehebung von Installations- und Verbindungsproblemen.
Verbindungstimeout
Für SQLSTATE HYT00 oder HYT01Netzwerklatenz, langsame Server und Verbindungszeit-Einstellungen siehe Fehlerbehebung von Installation und Verbindungsproblemen.
SSL-Zertifikatfehler
Informationen zu Fehlern bei nicht vertrauenswürdigen Zertifikaten und zu sicheren Optionen für die lokale Entwicklung finden Sie unter Beheben von Installations- und Verbindungsproblemen.
Abfrageausführungsprobleme
Tabelle oder Objekt nicht gefunden
Informationen zu SQLSTATE 42S02, zum Datenbankkontext, zu Prüfungen der Schemqualifizierung und zur Tabellenexistenz finden Sie unter Beheben von Abfrage-, Daten- und Vorgangsproblemen.
Syntaxfehler
Für SQLSTATE 42000, SQL-Syntax, String-Escape und parametrisierte Abfragen siehe Troubleshoot Query, Data, and Operation Issues.
Parameterfehler
Informationen zu SQLSTATE 07001, zur Anzahl der Platzhalter und zu unterstützten Parameterstilen finden Sie unter Abfragen, Daten- und Vorgangsprobleme beheben.
Probleme mit Datentypen
Fehler bei Date-Time-Umrechnungen
Für SQLSTATE- 22007 und Datetime-Parameter-Konvertierung siehe Fehlerbehebung von Abfrage-, Daten- und Betriebsproblemen.
Dezimalpräzisionsprobleme
Informationen zu abgeschnittenen oder gerundeten Dezimalwerten finden Sie unter Problembehandlung bei Abfrage-, Daten- und Vorgangsbeschwerden.
Unicode-Codierungsprobleme
Informationen zu fehlerhaft dargestellten Sonderzeichen und Unicode-Spaltentypen finden Sie unter Beheben von Abfrage-, Daten- und Betriebsproblemen.
Leistungsprobleme
Langsame Abfrageausführung
Zur Indizierung, für große Ergebnissätze und Verbindungspooling siehe Abfragen, Daten- und Vorgangprobleme behandeln.
Speicherprobleme bei großen Ergebnismengen
Informationen zum Streaming und zum Paginieren großer Ergebnismengen finden Sie unter Problembehandlung bei Abfrage-, Daten- und Vorgangsproblemen.
Transaktionsprobleme
Gültigkeitsbereich von temporären Tabellen mit Autocommit
Für temporäre Tabellen, die nach dem Rollback verschwinden, und DDL-Anweisungen, die Autocommit erfordern, siehe Beheben von Abfrage-, Daten- und Vorgangsproblemen.
Transaktion nicht abgeschlossen
Für Datenänderungen, die nach dem Schließen der Verbindung nicht bestehen bleiben, siehe Fehlerbehebung von Abfragen, Daten und Betriebsproblemen.
Deadlock-Fehler
Informationen zu SQLSTATE 40001, zu Hinweisen bei Wiederholungen und zur Analyse wiederkehrender Deadlocks finden Sie unter Behandeln von Abfrage-, Daten- und Vorgangsproblemen.
Probleme beim Massenladen
Verstöße gegen Einschränkungen während des Bulk Copy-Vorgangs
Informationen zu Verletzungen von Primärschlüssel-, Unique-, Prüf- oder Fremdschlüssel-Constraints bei der Massenkopie finden Sie unter Beheben von Abfrage-, Daten- und Vorgangsproblemen.
Spaltenabbildungsfehler
Bei Nichtübereinstimmungen bei der Massenkopie in Bezug auf Spaltenanzahl und Spaltenreihenfolge siehe Beheben von Abfrage-, Daten- und Vorgangsproblemen.
Typabweichungen beim Massenkopieren
Für trunkierte, abgerundete oder falsche Werte nach Massenkopien siehe Fehlerbehebung von Abfragen, Daten und Betriebsproblemen.
NumPy-Typbindungsfehler
Für Parameterbindungsfehler mit NumPy-Ganzzahl- oder Gleitkommatypen siehe Probleme mit Abfragen, Daten und Vorgängen beheben.
Bulkcopy mit temporären Tabellen
Zu Invalid object name-Fehlern, die auftreten, wenn Sie bulkcopy() mit einer Sitzungstemporärtabelle verwenden, finden Sie unter Beheben von Abfrage-, Daten- und Vorgangsproblemen.
Container- und CI-Probleme
Fehlende Systembibliotheken unter Linux
Für fehlende libltdl oder Kerberos-Bibliotheken in Linux-Umgebungen siehe Fehlerbehebung von Installations- und Verbindungsproblemen.
macOS SSL-Fehler nach der Installation
Für SSL-bezogene Fehler auf macOS, einschließlich Apple Silicon, siehe Fehlerbehebung der Installation und Verbindungsprobleme.
Diagnosewerkzeuge
Treiberprotokollierung aktivieren
Nutze mssql_python.setup_logging() , um das DEBUG-Logging zu aktivieren. Der Treiber protokolliert SQL-Anweisungen, Parameter, interne ODBC-Operationen und Verbindungszustandsänderungen.
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")
Logdateien verwenden das CSV-Format und werden ab einer Größe von 512 MB automatisch rotiert, wobei fünf Sicherungskopien aufbewahrt werden. Der Treiber bereinigt sensible Daten wie Passwörter und Zugriffstoken in der Logausgabe.
Um Anwendungseinträge dem Treiberprotokoll hinzuzufügen, verwenden Sie 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
Die Protokollierung verursacht einen Leistungsaufwand. Aktiviere es nur, wenn du ein Problem behebest. Aktiviere es standardmäßig nicht in der Produktion.
Erhalte Fahrerinformationen
Rufen Sie die Treiberversion und Serverdetails von einer aktiven Verbindung ab:
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)}")
Überprüfen des Verbindungszustands
Führe eine leichte Abfrage aus, um zu testen, ob eine Verbindung noch offen ist:
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")
Schnellreferenz: Häufige Fehler
| Fehler | SQLSTATE | Übliche Ursache | Problembehandlung |
|---|---|---|---|
| Client kann keine Verbindung herstellen | 08001 |
Server nicht erreichbar | Keine Verbindung zum Server möglich |
| Fehler bei der Anmeldung | 28000 |
Falsche Anmeldeinformationen | Anmeldung fehlgeschlagen |
| Timeout überschritten |
HYT00 oder HYT01 |
Langsames Netzwerk | Verbindungstimeout |
| Ungültiger Objektname | 42S02 |
Falsche Tabelle oder Schema | Tabelle oder Objekt nicht gefunden |
| Syntaxfehler | 42000 |
SQL-Fehler | Syntaxfehler |
| Verstoß gegen eine Einschränkung | 23000 |
Verletzung des Fremdschlüssels oder Primärschlüssels | Constraint-Verletzungen während des Massenkopiervorgangs |
| Deadlock | 40001 |
Sperrkonflikt | Deadlock-Fehler |