Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Sürücü için mssql-python sorun giderme rehberi bulmak için bu makaleyi kullanabilirsiniz. Sorununuza uyan belirti veya hata mesajıyla başlayın.
Kurulum sorunları
pip kurulumu başarısız olur veya kaynaktan derlenir
Desteklenmeyen Python sürümleri, eksik tekerlekler, aktif olmayan sanal ortamlar ve eksik Linux kütüphaneleri için Sorun Gider kurulum ve bağlantı sorunları bölümünü ziyaret edin.
Çelişkili sürücü kurulumları
mssql-python ve pyodbc birlikte yüklendiğinde içe aktarma hatalarıyla veya beklenmeyen davranışlarla karşılaşırsanız, Yükleme ve bağlantı sorunlarını giderme bölümüne bakın.
Bağlantı sorunları
Sunucuya bağlanamıyor
SQLSTATE08001, ulaşılamayan sunucular, durdurulan hizmetler ve Azure SQL güvenlik duvarı kuralları için bkz. Sorun Giderme kurulum ve bağlantı sorunları.
Oturum açılamadı
SQLSTATE 28000, kimlik doğrulama modunda uyumsuzluklar, geçersiz kimlik bilgileri ve eksik veritabanı kullanıcıları için bkz. Kurulum ve bağlantı sorunlarını çözme.
Bağlantı zaman aşımına uğradı
SQLSTATE HYT00 veya HYT01, ağ gecikmesi, yavaş sunucular ve bağlantı zaman aşımına sahip ayarlar için Kurulum ve bağlantı sorunlarını sorun giderme bölümünü inceleyebilirsiniz.
SSL sertifikası hataları
Güvenilmez sertifika hataları ve güvenli yerel geliştirme seçenekleri için Kurulum ve bağlantı sorunlarını çözme bölümünü inceleyebilirsiniz.
Sorgu yürütme sorunları
Tablo veya nesne bulunamadı
SQLSTATE 42S02, veritabanı bağlamı, şema nitelendirmesi ve tablo varlık kontrolleri için bkz. Sorun giderme sorgu, veri ve işlem sorunları.
Söz dizimi hatası
SQLSTATE 42000, SQL söz dizimi, dize kaçışı ve parametreli sorgular için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Parametre hataları
SQLSTATE 07001, yer tutucu sayısı ve desteklenen parametre biçimleri için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Veri tipi sorunları
Tarih saati dönüşüm hataları
SQLSTATE 22007 ve datetime parametresi dönüştürme için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Ondalık hassasiyet sorunları
Kesilmiş veya yuvarlatılmış ondalık değerler için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Unicode kodlama sorunları
Bozuk özel karakterler ve Unicode sütun türleri hakkında bilgi için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Performans sorunları
Yavaş sorgu yürütme
Dizin oluşturma, büyük sonuç kümeleri ve bağlantı havuzu oluşturma için Sorgu, veri ve işlem sorunlarını giderme konusuna bkz.
Büyük sonuçlarda bellek sorunları
Büyük sonuç kümelerinde akış ve sayfalama için Sorgu, veri ve işlem sorunlarını giderme konusuna bakın.
İşlem sorunları
Otomatik commit ile geçici tablo kapsamı
Rollback sonrası kaybolan geçici tablolar ve otomatik commit gerektiren DDL ifadeleri için Sorun Giderme sorgu, veri ve işlem sorunları bölümünü inceleyebilirsiniz.
İşlem yapılmadı
Bağlantı kapandıktan sonra devam etmeyen veri değişiklikleri için Sorun Giderme sorgusu, veri ve işlem sorunları bölümünü inceleyin.
Kilitlenme hataları
SQLSTATE 40001, yeniden deneme yönergeleri ve yinelenen deadlock analizi için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Toplu yükleme sorunları
Toplu kopide sırasında kısıtlama ihlalleri
Toplu kopyalama sırasında birincil anahtar, benzersiz, denetim veya yabancı anahtar ihlalleri durumunda Sorgu, veri ve işlem sorunlarını giderme konusuna bakın.
Sütun eşleme hataları
Toplu kopyadaki sütun sayısı ve sütun sırası uyuşmazlıkları için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Toplu kopyalama sırasında tip uyumsuzlukları
Toplu kopyalamadan sonra kesilmiş, yuvarlanmış veya yanlış değerler için Sorgu, veri ve işlem sorunlarını giderme konusuna bakın.
NumPy tip bağlanma hataları
NumPy tamsayı veya kayan noktalı türleriyle parametre bağlama başarısızlıkları için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Geçici tablolarla toplu kopyalama
Oturum geçici tablosuyla Invalid object name kullandığınızda oluşan bulkcopy() hatalar için Sorgu, veri ve işlem sorunlarını giderme bölümüne bakın.
Konteyner ve CI sorunları
Linux'ta eksik sistem kütüphaneleri
Linux ortamlarında eksik libltdl veya Kerberos kütüphaneleri için Kurulum ve bağlantı sorunlarını sorun giderme bölümünü inceleyin.
Kurulumdan sonra macOS SSL hataları
macOS'taki SSL ile ilgili hatalar için, Apple Silicon dahil, Kurulum ve bağlantı sorunlarını giderme bölümüne bakın.
Tanılama araçları
Sürücü kaydını etkinleştir
DEBUG günlüğünü etkinleştirmek için mssql_python.setup_logging() kullanın. Sürücü, SQL ifadelerini, parametreleri, dahili ODBC işlemlerini ve bağlantı durumu değişikliklerini kaydeder.
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")
Log dosyaları CSV formatını kullanır ve beş yedeklemeyle 512 MB'de otomatik olarak döndürülür. Sürücü, günlük çıktısında parolalar ve erişim belirteçleri gibi hassas verileri ayıklar.
Sürücü kaydına uygulama girişleri eklemek için şunları kullanın 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
Loglama performans ek yüküne neden olur. Sadece bir sorun giderdiğinizde etkinleştirin. Bunu üretim ortamında varsayılan olarak etkinleştirmeyin.
Sürücü bilgisini alın
Aktif bir bağlantıdan sürücü sürümünü ve sunucu detaylarını alın:
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)}")
Bağlantı durumunu denetleme
Bağlantının hâlâ açık olup olmadığını test etmek için hafif bir sorgu çalıştırın:
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")
Hızlı referans: Yaygın hatalar
| Error | SQLSTATE | Yaygın neden | Sorun giderme |
|---|---|---|---|
| İstemci bağlantı kuramıyor | 08001 |
Sunucuya ulaşılamıyor | Sunucuya bağlanamıyor |
| Oturum açılamadı | 28000 |
Yanlış kimlik bilgileri | Giriş başarısız oldu |
| Zaman aşımı süresi doldu |
HYT00 veya HYT01 |
Yavaş ağ | Bağlantı zaman aşımı |
| Geçersiz nesne adı | 42S02 |
Yanlış tablo veya şema | Tablo veya nesne bulunamadı |
| Söz dizimi hatası | 42000 |
SQL hatası | Sözdizimi hatası |
| Kısıtlama ihlali | 23000 |
Yabancı anahtar veya birincil anahtar ihlali | Toplu kopide sırasında kısıtlama ihlalleri |
| Kilitlenme | 40001 |
Kilitleme çekişmesi | Kilitlenme açmazı hataları |