Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Použijte tento článek k nalezení návodu k řešení problémů s ovladačem mssql-python . Začněte s příznakem nebo chybovou zprávou, která odpovídá vašemu problému.
Problémy s instalací
Instalace PIP selže nebo se sestaví ze zdrojového kódu
Pro nepodporované verze Python, chybějící kolečka, neaktivní virtuální prostředí a chybějící linuxové knihovny viz Řešení problémů s instalací a připojením.
Konfliktní instalace ovladačů
Pokud při společné instalaci mssql-python a pyodbc dochází k chybám při importu nebo k neočekávanému chování, viz Řešení problémů s instalací a připojením.
Problémy s připojením
Nelze se připojit k serveru
Pro SQLSTATE08001, nedostupné servery, zastavené služby a pravidla Azure SQL firewallu viz Řešení problémů s instalací a připojením.
Přihlášení se nezdařilo.
Pro SQLSTATE 28000, neshody v autentizačních režimech, neplatné přihlašovací údaje a chybějící uživatele databáze viz Řešení problémů s instalací a připojením.
Časový limit připojení vypršel
Pro nastavení SQLSTATE HYT00 nebo HYT01, latence sítě, pomalých serverů a časového limitu připojení viz Řešení problémů s instalací a připojením.
Chyby certifikátu SSL
Pro chyby nedůvěryhodných certifikátů a bezpečné možnosti lokálního vývoje viz Řešení problémů s instalací a připojením.
Problémy s prováděním dotazů
Tabulka nebo objekt nenalezený
Informace o SQLSTATE 42S02, databázovém kontextu, určení schématu a kontrole existence tabulek najdete v článku Řešení potíží s dotazy, daty a operacemi.
Chyba syntaxe
Informace o SQLSTATE 42000, syntaxi SQL, escapování řetězců a parametrizovaných dotazech najdete v článku Řešení potíží s dotazy, daty a operacemi.
Chyby parametrů
Informace o SQLSTATE 07001, počtech zástupných symbolů a podporovaných stylech parametrů naleznete v části Řešení potíží s dotazy, daty a operacemi.
Problémy s datovými typy
Chyby při převodu data a času
Informace o SQLSTATE 22007 a převodu parametru datetime naleznete v článku Troubleshoot query, data, and operation issues.
Problémy s desetinnou přesností
Informace o oříznutých nebo zaokrouhlených desetinných hodnotách naleznete v článku Řešení problémů s dotazy, daty a operacemi.
Problémy s kódováním v Unicode
Informace o poškozených speciálních znacích a datových typech sloupců Unicode najdete v tématu Řešení potíží s dotazy, daty a operacemi.
Problémy s výkonem
Pomalé provádění dotazů
Informace o indexování, velkých sadách výsledků a sdružování připojení najdete v tématu Řešení potíží s dotazy, daty a operacemi.
Problémy s pamětí při velkých výsledcích
Informace o streamování a stránkování velkých sad výsledků najdete v článku Řešení problémů s dotazy, daty a operacemi.
Problémy s transakcí
Rozsah platnosti dočasné tabulky s autocommit režimem
Informace o dočasných tabulkách, které po rollbacku zmizí, a příkazech DDL vyžadujících automatické potvrzení najdete v části Řešení problémů s dotazy, daty a operacemi.
Transakce neprovedena
Informace o změnách dat, které po uzavření připojení nepřetrvávají, naleznete v tématu Řešení problémů s dotazy, daty a operacemi.
Chyby zablokování
Informace o SQLSTATE40001, pokynech k opakování pokusu a analýze opakovaných deadlocků najdete v článku Řešení potíží s dotazy, daty a operacemi.
Problémy s hromadným zatížením
Porušení omezení během hromadného kopírování
Pro porušení primárního klíče, unikátu, kontroly nebo cizího klíče během hromadného kopírování viz Řešení problémů s dotazy, daty a operačními problémy.
Chyby při mapování sloupců
V případě neshod v počtu sloupců a jejich pořadí při hromadném kopírování viz Řešení problémů s dotazy, daty a operacemi.
Typové neshody během hromadné kopie
Informace o oříznutých, zaokrouhlených nebo nesprávných hodnotách po hromadném kopírování najdete v tématu Řešení potíží s dotazy, daty a operacemi.
Selhání vázání typu NumPy
Informace o potížích s vazbou parametrů u celočíselných typů nebo typů s plovoucí desetinnou čárkou v NumPy najdete v tématu Řešení problémů s dotazy, daty a operacemi.
Bulkcopy s dočasnými tabulkami
Informace o chybách Invalid object name při použití bulkcopy() s dočasnou tabulkou relace naleznete v tématu Řešení problémů s dotazy, daty a operacemi.
Problémy s kontejnery a CI
Chybějící systémové knihovny na Linuxu
Pro chybějící libltdl nebo Kerberos knihovny v linuxových prostředích viz Řešení problémů s instalací a připojením.
Chyby macOS SSL po instalaci
Pro chyby související se SSL na macOS, včetně Apple Silicon, viz Řešení problémů s instalací a připojením.
Diagnostické nástroje
Povolit logování ovladačů
Použijte mssql_python.setup_logging() k povolení protokolování DEBUG. Ovladač zaznamenává SQL příkazy, parametry, interní operace ODBC a změny stavu spojení.
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")
Protokolové soubory používají formát CSV a při velikosti 512 MB se automaticky rotují s pěti záložními soubory. Ovladač sanitizuje citlivá data, jako jsou hesla a přístupové tokeny, ve výstupu z logu.
Pro přidání záznamů aplikací do logu ovladačů použijte 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
Logování má dopad na výkon. Zapněte ho jen při řešení problému. Nezapínejte to ve výrobě jako výchozí podmínku.
Získejte informace o řidiči
Získejte verzi ovladače a detaily serveru z aktivního připojení:
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)}")
Kontrola stavu připojení
Spusť lehký dotaz, který otestuje, zda je spojení stále otevřené:
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")
Rychlá reference: Běžné chyby
| Error | SQLSTATE | Obvyklá příčina | Troubleshooting |
|---|---|---|---|
| Klient nedokáže navázat spojení | 08001 |
Nedostupný server | Nelze se připojit k serveru |
| Přihlášení se nezdařilo. | 28000 |
Nesprávné přihlašovací údaje | Přihlášení neúspěšné |
| Vypršel časový limit. |
HYT00 nebo HYT01 |
Pomalá síť | Vypršení časového limitu připojení |
| Neplatný název objektu | 42S02 |
Nesprávná tabulka nebo schéma | Tabulka nebo objekt nenalezený |
| Chyba syntaxe | 42000 |
SQL chyba | Chyba syntaxe |
| Porušení omezení | 23000 |
Porušení cizího klíče nebo primárního klíče | Porušení omezení při hromadném kopírování |
| Vzájemné zablokování | 40001 |
Soutěž o zámky | Chyby zablokování |