İÇİNDEKİLER
- •Uygulamanız SQL Server'a bağlanamıyor mu?
- •Hata Mesajı Ne Söylüyor?
- •1. SQL Server Servisi Çalışıyor mu?
- •2. Doğru Sunucu ve Instance’a mı Bağlanıyorsunuz?
- •3. TCP/IP Protokolü Açık mı?
- •4. “Allow Remote Connections” Kutusu Ne İşe Yarar?
- •5. Güvenlik Duvarı Portlara İzin Veriyor mu?
- •6. Login Failed (18456): State Numarası Nedeni Söyler
- •7. Sertifika Hataları: Yeni Sürücülerde Şifreleme Varsayılan
- •Bağlantı Sorunu Kontrol Listesi
- •Bağlantı sorunlarını tahminle değil, katman katman çözün
Uygulama sabah açılmıyor, SSMS bağlanmıyor ya da yeni kurulan sunucuya kimse erişemiyor. SQL Server bağlantı hataları çoğu zaman aynı genel mesajla gelir ve mesaj, sorunun nerede olduğunu söylemez. Oysa bağlantının kurulabilmesi için birkaç katmanın sırayla çalışması gerekir: servis ayakta olmalı, istemci doğru instance’ı bulabilmeli, ağ ve güvenlik duvarı izin vermeli, oturum açma bilgisi kabul edilmeli ve yeni sürücülerde şifreleme sertifikası doğrulanabilmeli.
Bu rehberde en sık görülen hataların (26, 40, 53, 10060 ve 18456) hangi katmanı işaret ettiğini ve her birinin nasıl adım adım çözüleceğini anlatıyoruz.
Uygulamanız SQL Server'a bağlanamıyor mu?
Aryasoft'un kıdemli DBA ekibi bağlantı, kimlik doğrulama ve sertifika sorunlarını hızla teşhis eder, kalıcı olarak çözer.
Hata Mesajı Ne Söylüyor?
En sık karşılaşılan mesaj, SSMS’te ya da uygulama loglarında şu şekilde görünür:
Mesajın başı her zaman aynıdır; ipucu parantez içindeki error numarasındadır. Hataları üç gruba ayırmak, nereden başlayacağınızı belirler:
| Hata | Anlamı | Bakılacak katman |
|---|---|---|
| error: 26 – Error Locating Server/Instance Specified | İstemci adlandırılmış instance’ın portunu öğrenemedi | SQL Server Browser, UDP 1434, instance adı |
| error: 40 – Could not open a connection | Sunucuya ulaşıldı ya da ulaşılamadı ama bağlantı açılamadı | Servis, TCP/IP protokolü, port, güvenlik duvarı |
| error: 53 – The network path was not found | Sunucu adı çözülemedi veya makineye ulaşılamadı | DNS, sunucu adı, ağ erişimi |
| 10060 / 10061, timeout | Port kapalı ya da dinlenmiyor | Güvenlik duvarı, port numarası, servis |
| Login failed (18456) | Sunucuya ulaşıldı, oturum açma reddedildi | Kimlik bilgisi, login durumu, kimlik doğrulama modu |
| Sertifika zinciri güvenilir değil | Bağlantı kuruldu, TLS doğrulaması başarısız | Sertifika, sürücü sürümü, Encrypt ayarı |
1. SQL Server Servisi Çalışıyor mu?
İlk kontrol en basit olanıdır. SQL Server Configuration Manager’da ya da Windows Hizmetler ekranında Database Engine servisinin (SQL Server (MSSQLSERVER) veya SQL Server (InstanceAdı)) Running durumda olduğunu doğrulayın. Adlandırılmış instance kullanıyorsanız SQL Server Browser servisinin de çalışması gerekir.

PowerShell ile aynı kontrol:
Get-Service -Name 'MSSQL*', 'SQLBrowser' | Select-Object Name, Status, StartType
Servis başlamıyorsa sorun bağlantı değil başlangıçtır; nedeni SQL Server error log’unda ve Windows Application log’undadır. Error log’u nasıl okuyacağınızı error log rehberimizde anlatıyoruz.
2. Doğru Sunucu ve Instance’a mı Bağlanıyorsunuz?
Varsayılan instance’a yalnızca sunucu adıyla (SUNUCU), adlandırılmış instance’a SUNUCU\InstanceAdı biçiminde bağlanılır. Adlandırılmış instance’lar varsayılan olarak dinamik port kullanır; istemci portu SQL Server Browser’a UDP 1434 üzerinden sorarak öğrenir. Browser kapalıysa ya da UDP 1434 engelliyse error 26 alırsınız.
İki kalıcı çözüm vardır: Browser’ı çalıştırıp UDP 1434’e izin vermek ya da instance’a sabit bir port atayıp istemcide portu açıkça yazmak (SUNUCU,1450). Üretim ortamlarında sabit port, güvenlik duvarı kurallarını da öngörülebilir kıldığı için genellikle daha iyi bir seçimdir.
SQL Server’ın gerçekte hangi IP ve portu dinlediğini error log’dan görebilirsiniz:
EXEC sys.xp_readerrorlog 0, 1, N'Server is listening on';
3. TCP/IP Protokolü Açık mı?
SQL Server Express ve Developer kurulumlarında TCP/IP protokolü varsayılan olarak kapalıdır; bu durumda sunucunun kendisinden bağlanabilir, başka bir makineden bağlanamazsınız. SQL Server Configuration Manager’da SQL Server Network Configuration › Protocols for [instance] altında TCP/IP’yi etkinleştirin. Port ayarı da aynı ekranın IP Addresses sekmesindeki IPAll bölümündedir. Değişiklik servis yeniden başlatıldıktan sonra geçerli olur.
4. “Allow Remote Connections” Kutusu Ne İşe Yarar?
Pek çok rehber, sunucu özelliklerindeki Connections sayfasında bulunan Allow remote connections to this server kutusunu işaretlemeyi önerir.

Not
Bu kutu, istemcilerin uzaktan bağlanmasını açıp kapatmaz. Arkasındaki remote access ayarı, sunucular arası uzak stored procedure çağrılarını yöneten ve kullanımdan kaldırılması planlanan eski bir seçenektir. Linked server’lar ve log shipping raporları için açık (varsayılan değer 1) kalmalıdır. İstemcilerin uzaktan bağlanabilmesini belirleyen şey TCP/IP protokolü, port ve güvenlik duvarıdır.
5. Güvenlik Duvarı Portlara İzin Veriyor mu?
Servis çalışıyor, TCP/IP açık ama bağlantı yine zaman aşımına uğruyorsa (10060) en olası neden güvenlik duvarıdır. Varsayılan instance için TCP 1433’e, adlandırılmış instance’larda sabit porta ve SQL Server Browser kullanılıyorsa UDP 1434’e izin verin. Önce istemciden portun erişilebilir olup olmadığını test edin:
# İstemci makineden: port açık mı?
Test-NetConnection -ComputerName SUNUCU -Port 1433
# Sunucuda: SQL Server portu için gelen kuralı
New-NetFirewallRule -DisplayName 'SQL Server TCP 1433' -Direction Inbound `
-Protocol TCP -LocalPort 1433 -Action Allow -Profile Domain
TcpTestSucceeded : False sonucu sorunun SQL Server’da değil ağda ya da güvenlik duvarında olduğunu gösterir. Sunucu ile istemci arasındaki ağ cihazlarında da aynı portun açık olması gerekir.
6. Login Failed (18456): State Numarası Nedeni Söyler
18456 hatası, bağlantının sunucuya ulaştığını ama oturum açmanın reddedildiğini gösterir. Güvenlik nedeniyle istemciye gönderilen mesaj belirsizdir; asıl neden SQL Server error log’undaki state numarasındadır:
EXEC sys.xp_readerrorlog 0, 1, N'Login failed';
| State | Anlamı | Çözüm |
|---|---|---|
| 2, 5 | Login sunucuda yok | Login adını kontrol edin ya da login oluşturun |
| 6 | Windows login’i SQL kimlik doğrulamasıyla kullanılmaya çalışıldı | Windows Authentication ile bağlanın |
| 7 | Login devre dışı | ALTER LOGIN … ENABLE |
| 8 | Parola yanlış | Parolayı kontrol edin; hesap kilitlenmesine dikkat edin |
| 11, 12 | Login geçerli ama sunucuya erişim yetkisi yok | CONNECT SQL yetkisini ve Windows grup üyeliğini kontrol edin |
| 18 | Parolanın değiştirilmesi gerekiyor | Parolayı değiştirin |
| 38, 40 | Login’in varsayılan veritabanına erişilemiyor | Veritabanı adını, durumunu ve kullanıcı eşlemesini kontrol edin |
| 58 | Sunucu yalnızca Windows kimlik doğrulamasına açık | Mixed Mode’a geçin (servis yeniden başlatılmalıdır) |
Bir migration ya da restore sonrasında görülen 18456 hatalarının sık nedeni, veritabanındaki kullanıcı ile sunucudaki login’in SID’lerinin eşleşmemesidir (orphaned user). Login’leri yeni sunucuya SID’leriyle birlikte taşımak bu sorunu baştan önler.
7. Sertifika Hataları: Yeni Sürücülerde Şifreleme Varsayılan
ODBC Driver 18, OLE DB Driver 19 ve güncel Microsoft.Data.SqlClient sürümleri bağlantıyı varsayılan olarak şifreler ve sunucu sertifikasını doğrular. Sunucu kendi ürettiği (self-signed) sertifikayı kullanıyorsa bağlantı şu hatayla düşer: “The certificate chain was issued by an authority that is not trusted.” Sürücü güncellemesinden ya da SQL Server 2025’e geçişten sonra aniden ortaya çıkan bağlantı hatalarının önemli bir kısmı bu nedenle oluşur; SQL Server 2025 kurulumuyla gelen sürücüler de bu varsayılanla çalışır.
Uyarı
TrustServerCertificate=True ile hatayı susturmak kısa vadede işe yarar, ama sertifika doğrulamasını devre dışı bırakır ve bağlantıyı araya girme saldırılarına açık hale getirir. Kalıcı çözüm, sunucuya kurumunuzun güvendiği bir sertifika atamak ve istemcilerin sunucuya sertifikadaki adla bağlanmasını sağlamaktır.
Linked server’lar da bu değişiklikten etkilenir; ayrıntıları linked server rehberimizde ele alıyoruz.
Bağlantı Sorunu Kontrol Listesi
- Database Engine servisi ve (adlandırılmış instance’ta) SQL Server Browser çalışıyor.
- Sunucu adı DNS’te çözülüyor; instance adı ya da port doğru yazılmış.
- TCP/IP protokolü açık; SQL Server’ın dinlediği port error log’da doğrulandı.
Test-NetConnectionile port istemciden erişilebilir.- Güvenlik duvarında TCP portu ve gerekiyorsa UDP 1434 açık.
- 18456 hatalarında error log’daki state numarası incelendi.
- Yeni sürücülerde sunucu sertifikası güvenilir bir otoriteden alınmış.
Hiçbiri sonuç vermiyorsa ve sunucu yanıt vermiyorsa, sysadmin olarak Dedicated Admin Connection (DAC) ile bağlanıp sunucunun içinde ne olduğuna bakabilirsiniz.
İlgili Yazılar
- SQL Server Dedicated Admin Connection (DAC): Sunucu Yanıt Vermezken Nasıl Bağlanılır?
- SQL Server Error Log: Nerede Bulunur, Nasıl Okunur, Nelere Dikkat Edilmeli?
- SQL Server Güvenlik Sıkılaştırma: Üretim Sunucuları İçin Pratik Kontrol Listesi
- SQL Server Production Kesintisi: İlk 30 Dakika İçin Sakin Bir Runbook
SQL Server Acil Destek
Bağlantı sorunlarını tahminle değil, katman katman çözün
Aryasoft’un kıdemli DBA ekibi servis, ağ, kimlik doğrulama ve sertifika katmanlarını sırayla inceler; sorunu kalıcı olarak çözer ve tekrarlamaması için yapılandırmayı belgeler.