SQL Server başlatıldı, ancak herhangi bir bağlantı noktasını dinlemedi


9

SQL Server 2012'yi yeni yükledim. Henüz veritabanı oluşturulmadı. Management Studio'yu sa / password ile açabilirim. Binn \ sqlservr.exe bir hizmet olarak başlatılır ve hizmet listesinde başladığını görebiliyorum. Ancak, aşağıdaki gibi kontrol ettiğim gibi 1433 bağlantı noktasını dinlemedi veya varsayılan olarak herhangi bir bağlantı noktasını dinlemedi:

tasklist|find /I "sql"

Bende var:

sqlservr.exe                  5668 Services                   0     40,112 K

hangi 5668 PID olduğunu düşünüyorum. Ve sonra PID = "5668" almak için hangi portu dinliyor:

netstat -ano | find /I "5668"

ama boştan başka bir şeyim yok. Öte yandan, bu sitedeki gönderileri aradıktan sonra SQL Serverımın yapılandırmasını tekrar kontrol ettim: start-> Tüm Programlar -> Microsoft SQL Server 2012 -> Yapılandırma Araçları -> SQL Server Yapılandırma Yöneticisi-> SQL Server SQL Yerel İstemci 11.0 Yapılandırma -> İstemci Protokolleri -> TCP / IP -> Varsayılan Bağlantı Noktası 1433. SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) ve SQL Server Tarayıcı olmak üzere 3 hizmet vardır. Son ikisi durduruldu.

SQL Server Yapılandırma Yöneticisi-> SQL Server Ağ Yapılandırması-> MyInstanceName Protokolleri -> TCP / IP, etkinleştirdikten ve hizmeti yeniden başlattıktan ve varsayılan olarak netstat -ano | find / I "newPIDNum" komutunu buldum

TCP    0.0.0.0:52395          0.0.0.0:0              LISTENING  5668(newPIDNum)   

Neden 1433 yerine 52395? Ve bana bir hata döndüren Windows ODBC Veri Kaynağı yöneticisini kullanarak DSN oluşturamadım: belirtilen SQL sunucusu bulunamadı. Bana yardım eder misin? Teşekkürler.


SQL Server Ağ yapılandırma Standart (2008, 2012 versiyonunu bulamıyorum ama hiç farklı olduğunu sanmıyorum)
Damien_The_Unbeliever

Teşekkürler. Benim için gerçekten iyi bir yardım. DSN sandığım hakkında başka yorumlarınız var mı?

Adlandırılmış bir örnek kullandığınız anlaşılıyor (bildiğim kadarıyla yalnızca varsayılan örnek 1433'te dinliyor). DSN'yi oluşturmaya çalışırken örnek adını ekliyor musunuz?
Damien_The_Unbeliever

Evet, kurulum sırasında Örnek için bir ad girdim. DSN oluştururken, bir DSN adı girmem istendi (bir arbitary adı girdim), bağlanmak için SQL sunucusu (Bu bir açılan seçim kutusudur ve burada iki seçenek denedim, ikisi de başarısız, biri (yerel), başka <.MyInstanceName>),

Henüz MyInstanceName eklemek için başka bir yer görmedim. Ve sonraki düğme bana bir kimlik doğrulamasını ve <Sunucu Diğer Adı>, <Sunucu Adı> ayarlayabildiğim ve <Bağlantı noktasını dinamik olarak belirle> seçeneğini işaretleyebileceğim bir <İstemci Yapılandırması> yöneltiyor.

Yanıtlar:


14

SQL sunucumu TCP1433 numaralı bağlantı noktasındaki bağlantıları dinleten şey şuydu ...

  1. Yapılandırma Araçları / SQL Server Yapılandırma Yöneticisi
  2. SQL Server Ağ Yapılandırması'nda örnek adını tıklatın
  3. TCPiletişimi etkinleştir
  4. TCPİletişim girişini sağ tıklayın,Properties
  5. IP adresleri sekmesini tıklayın
  6. VMnet dışındaki tüm IP adreslerini etkinleştirin ve Port" IPAll " girişine 1433 girin .
  7. SQL Server SQL Server Services sekmesinde yeniden başlatın
  8. Yapılandırmanızı aşağıdakilerle kontrol edin netstat -an:

    C:\>netstat -an | find "1433"
      TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING
      TCP    [::]:1433              [::]:0                 LISTENING

1
Bu benim için çalışan tek bir çözüm. Diğer kılavuzlar IPAII bağlantı noktası hakkında bile söylemiyor. Teşekkürler adamım, benim günümü yaptın
QkiZ

13

Neden 1433 yerine 52395

Adlandırılmış örnekler dinamik bağlantı noktalarını dinler. Sql Server Tarayıcı Hizmeti'nin iş istemcileri gerçek bağlantı noktası hakkında bilgilendirmek işidir . Sql Tarayıcı UDP 1434'ü dinler ve 'foo' örneğinin dinleme portu nedir? 'Şeklinde soruları cevaplar. Sql Server Tarayıcı hizmeti hem TCP hem de adlandırılmış yöneltme protokolleri için gereklidir. İstemciler SQL Server Tarayıcısını şeffaf bir şekilde kullanır, özel yapılandırmaya gerek yoktur. Yalnızca bağlantı dizesinde (veya ODBC DSN) bir örnek adı belirterek, istemci kitaplığı önce SQL Server Tarayıcı hizmetine başvurması gerektiğini bilir.

SQL Server (MyInstanceName), SQL Server Agent (MyInstanceName) ve SQL Server Tarayıcı olmak üzere 3 hizmet vardır. Son ikisi durdu

Açıkçası SQL Server Tarayıcısının işini yapması için başlatılması gerekiyor. Başlatın ve başlatma türünü otomatik olarak değiştirin.

Yan not olarak, sık kullanılan bir alternatif yapılandırma, adlandırılan örnek için statik bağlantı noktaları kullanmak ve bağlantı dizesindeki bağlantı noktasını ( tcp:<hostname>:<port>) belirtmektir . SQL Server Tarayıcısını denklemden çıkarma avantajına sahiptir, ancak istemcilerin dikkatli bir şekilde bakımını gerektirir. Dinleme bağlantı noktasını değiştirmek, tüm istemcilerde, tüm makinelerde, tüm konumlarda, genellikle büyük bir acıda düzenli değişiklikler gerektirir. Bunun yerine SQL Server Browser'a bağımlılığı öneriyorum.


1

Güvenlik duvarları - 3 tanesi

Windows'un daha yeni sürümlerine aşina olmayan kişiler (XP'den sonra hiç rahat değilim ve Windows 10'a SQL Server yüklemeye çalışıyordum):

  • Güvenlik duvarınızın 3 ayrı yerde (yani 3 farklı Profil için) çevrilmesi gerekir .

Bunu yalnızca ilk gördüğünüz için yaparsanız (Etki Alanı Profili), neden 1433'e (SQL Server) değil, 80 numaralı bağlantı noktasına (IIS) bağlanabileceğinizi merak edeceksiniz.

resim açıklamasını buraya girin


1

Henüz yorum yapamıyorum (çok aktif olmadığından beri itibar düşük): Ancak yukarıda belirtildiği gibi Windows Güvenlik Duvarı'nı devre dışı bırakmak olası en kötü cevaptır. Doğru olacaktır: İhtiyacınız olan yerel IP'lerde (veya hepsinde) Port 1433 iletişimine izin vermek için "gelen" içinde güvenlik duvarı kuralları oluşturun. Ayrıca, hangi uzak IP'lerin bu SQL Server'a bağlanmasına izin verileceğini ayarlamanızı da öneririm.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.