Az mssql-python hibaelhárítása

Használja ezt a cikket, hogy találj hibahiba-keresési mssql-python útmutatót a vezetőhöz. Kezdd azzal a tünettel vagy hibaüzenettel, ami megfelel a problémádnak.

Telepítési problémák

A pip telepítése meghibásodik vagy forrásból épít

A nem támogatott Python verziók, hiányzó kerekek, inaktív virtuális környezetek és hiányzó Linux könyvtárak esetén lásd: Hibakeresés telepítési és kapcsolati problémák.

Ellentmondó illesztőprogram-telepítések

Ha importálási hibák vagy váratlan működés tapasztalható, amikor a(z) mssql-python és a(z) pyodbc együtt vannak telepítve, lásd: Telepítési és csatlakozási problémák elhárítása.

Kapcsolódási problémák

Nem tudok csatlakozni a szerverhez

Az SQLSTATE08001, elérhetetlen szerverek, leállított szolgáltatások és Azure SQL tűzfal szabályai esetén lásd: Hibakeresés telepítési és kapcsolódási problémák.

A bejelentkezés sikertelen

Az SQLSTATE 28000, a hitelesítési mód eltérései, az érvénytelen hitelesítő adatok és a hiányzó adatbázis-felhasználók esetén lásd a Telepítési és csatlakozási problémák elhárítása című témakört.

Kapcsolati időkorlát

SQLSTATE HYT00 vagy HYT01, hálózati késleltetés, lassú szerverek és kapcsolati időtúllépés beállítások esetén lásd: Hibakeresés telepítési és kapcsolati problémák.

SSL-tanúsítványhibák

A nem megbízható tanúsítványhibák és biztonságos helyi fejlesztési lehetőségek esetén lásd: Hibakeresés telepítési és csatlakozási problémák.

Lekérdezés végrehajtási problémái

A tábla vagy objektum nem található

Az SQLSTATE 42S02, adatbázis-kontextus, séma minősítés és tábla-létellenőrzések esetén lásd: Keresés-, adat- és működési problémák hibaelhárítása.

Szintaxishiba

Az SQLSTATE 42000, az SQL-szintaxis, a karakterláncok escape-elése és a paraméterezett lekérdezések kapcsán lásd: Lekérdezési, adat- és műveleti problémák elhárítása.

Paraméterhibák

Az SQLSTATE 07001, a helyőrzők száma és a támogatott paraméterstílusok kapcsán lásd a következőt: Lekérdezési, adat- és műveleti problémák elhárítása.

Adattípus-problémák

Dátumidő-átalakítási hibák

Az SQLSTATE 22007 és datetime paraméterek átalakításáért lásd: Hibakeresés, adat és működési kérdések.

Tizedes pontossági problémák

A levágott vagy lekerekített tizedes értékek esetében lásd : Keresés-, adat- és működési problémák hibakeresése.

Unicode kódolási problémák

A zavaros speciális karakterek és Unicode oszloptípusok esetén lásd: Hibakeresés, lekérdezés, adat és működési problémák.

Teljesítménnyel kapcsolatos problémák

Lassú lekérdezés végrehajtása

Az indexelés, nagy eredményhalmazok és kapcsolat poolingolás esetén lásd: Hibakeresés, lekérdezés, adat és működési problémák.

Memóriaproblémák nagy méretű eredmények esetén

A nagy eredményhalmazok streamelése és oldalazása esetén lásd: Hibakeresés, lekérdezés, adat és működési problémák.

Tranzakciós problémák

Ideiglenes táblák hatóköre automatikus véglegesítés mellett

A visszagörgetés után eltűnő ideiglenes táblákról és DDL utasításokról, amelyek automatikus commitet igényelnek, lásd: Keresés, adat és működési problémák hibaelhárítása.

Nem végrehajtott tranzakció

Az adatváltozások esetén, amelyek a kapcsolat záródása után nem maradnak fenn, lásd: Hibakeresés, adat és működési problémák.

Holtzárhibák

Az SQLSTATE 40001, az újrapróbálkozás útmutatása és az ismétlődő holthelyzet elemzése esetén lásd: Keresés-, adat- és működési problémák hibakeresése.

Tömegterhelési problémák

Korlátok megsértése tömegmásolás során

Elsődleges kulcs, egyedi, ellenőrzés vagy külföldi kulcs megsértésekhez a tömeges másolás során lásd: Hibakeresés, lekérdezés, adat és működési problémák.

Oszlopleképezési hibák

A tömeges másolás során fellépő, az oszlopok számával és sorrendjével kapcsolatos eltérésekről lásd: Lekérdezési, adat- és műveleti problémák elhárítása.

Típusütközések tömeges másolás során

A tömeges másolás után lerövidített, lekerekített vagy helytelen értékek esetén lásd: Hibakeresés, adat és működési kérdések.

NumPy típusú kötési hibák

NumPy egész szám- vagy lebegő-típusú paraméterkötési hibákról lásd: Keresés-, adat- és műveleti problémák hibakeresése.

Bulkcopy ideiglenes táblázatokkal

A(z) Invalid object name hibáival kapcsolatban, amikor a(z) bulkcopy() elemet egy munkamenethez tartozó ideiglenes táblával használja, lásd: Lekérdezési, adat- és műveleti problémák elhárítása.

Konténer- és CI problémák

Hiányzó rendszerkönyvtárak Linuxon

A Linux-környezetekben hiányzó libltdl vagy Kerberos könyvtárak esetén lásd a Telepítési és kapcsolati problémák elhárítása című részt.

macOS SSL hibák telepítés után

SSL-lel kapcsolatos hibák esetén macOS rendszeren, beleértve az Apple chipes Mac gépeket is, lásd: A telepítési és csatlakozási problémák elhárítása.

Diagnosztikai eszközök

Illesztőprogram-naplózás engedélyezése

A DEBUG naplózás engedélyezéséhez használd a mssql_python.setup_logging()-t. A meghajtó naplózza az SQL utasításokat, paramétereket, belső ODBC műveleteket és a kapcsolati állapotváltozásokat.

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

A naplófájlok CSV formátumot használnak, és automatikusan forognak 512 MB-nál öt biztonsági mentéssel. Az illesztőprogram érzékeny adatokat, például jelszavakat és hozzáférési tokeneket fertőtlenít a napló kimenetében.

Az alkalmazás bejegyzések hozzáadásához a drivernaplóhoz a következőket használjuk 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

A naplózás teljesítményterheléssel jár. Csak akkor kapcsold be, ha hibakeresést végezel. Ne engedélyezd alapértelmezés szerint a gyártásban.

Sofőrinformációk

A meghajtó verzió és a szerver adatai előhívása egy aktív kapcsolatról:

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

Kapcsolat állapotának ellenőrzése

Futtass egy könnyűbb lekérdezést, hogy teszteld, nyitva van-e egy kapcsolat:

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

Gyors hivatkozás: Gyakori hibák

Hiba SQLSTATE Közös ok Hibaelhárítás
Az ügyfél nem tudja kapcsolatot teremteni 08001 A kiszolgáló nem érhető el Nem tudok csatlakozni a szerverhez
A bejelentkezés sikertelen 28000 Helytelen hitelesítő adatok Bejelentkezés sikertelen
Időtúllépés történt HYT00 vagy HYT01 Lassú hálózat Kapcsolat időkorlátja
Érvénytelen objektumnév 42S02 Hibás táblázat vagy séma Tábla vagy objektum nem található
Szintaxishiba 42000 SQL hiba Szintaktishiba
Kényszer megsértése 23000 Idegen kulcs vagy elsődleges kulcs megsértése Korlátok megsértése tömegmásolás során
Holtzár 40001 Zárolási ütközés Holtponti hibák