JDBC bağlantısı başarısız oldu, hata: Ana bilgisayara TCP / IP bağlantısı başarısız oldu


85

Java sınıf dosyasını SQL server 2012 ile bağlamak istiyorum. SQL sunucu kimlik doğrulaması ile oturum açtım. Ancak bağlantıda hata alıyorum.

HATA: 127.0.0.1 ana bilgisayarına, 1433 bağlantı noktasına TCP / IP bağlantısı başarısız oldu. Hata: "Bağlantı reddedildi: bağlan. Bağlantı özelliklerini doğrulayın. Ana bilgisayarda SQL Server örneğinin çalıştığından ve bağlantı noktasında TCP / IP bağlantılarını kabul ettiğinden emin olun. Bağlantı noktasına yapılan TCP bağlantılarının bir güvenlik duvarı tarafından engellenmediğinden emin olun . ".

Kodum ---

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  //1. Register your driver
//2. get the connection object
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost;databaseName=aysha","sa","admin");
Connection con = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1;databaseName=aysha","user=sa","password=admin");
 //"jdbc:sqlserver://127.0.0.1:1433; Instance=SQL2008;" +       "databaseName=MB;user=sa;password=123;";
//Connection con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=aysha","sa" , "password");
//3. Prepare a statement
Statement stmt = con.createStatement();
//4. Write the query`
String sql = "Select * from employee";
//5. Execute the statement and 
ResultSet rs = stmt.executeQuery(sql);
//6. Process the result set

while (rs.next())
{
    System.out.println(rs.getInt(1));
}

Yerel bilgisayar 1433 numaralı bağlantı noktasına bağlanmanıza izin vermeyi reddetti. Bu muhtemelen bir güvenlik duvarı sorunudur. Ayrıca bağlantı noktasında gerçekten dinleyen bir şey olduğundan emin olun
MadProgrammer

Yanıtlar:


208
  1. SQL Server Configuration Manager'ı açın ve ardından SQL Server 2012 Ağ Yapılandırmasını genişletin.
  2. ÖrnekAdı için Protokoller'e tıklayın ve ardından sağ panelde TCP / IP'nin etkinleştirildiğinden emin olun ve TCP / IP'ye çift tıklayın.
  3. Protokol sekmesinde, Tümünü Dinle öğesinin değerine dikkat edin.
  4. IP Adresleri sekmesine tıklayın: Tümünü Dinle'nin değeri evet ise, SQL Server 2012'nin bu örneği için TCP / IP bağlantı noktası numarası, IPAll altındaki TCP Dinamik Bağlantı Noktaları öğesinin değeridir. Tümünü Dinle değeri hayır ise, SQL Server 2012'nin bu örneği için TCP / IP bağlantı noktası numarası, belirli bir IP adresi için TCP Dinamik Bağlantı Noktaları öğesinin değeridir.
  5. TCP Bağlantı Noktasının 1433 olduğundan emin olun.
  6. Tamam'ı tıklayın.

Başka sorularınız varsa lütfen bize bildirin.

Teşekkürler.


15
Değişiklikleri yaptıktan sonra SQL örneğinizi yeniden başlatmayı unutmayın.
JimGoods

16
SQL örneğinizi şu şekilde yeniden başlatın: "SQL Server Yapılandırma Yöneticisi" -> "SQL Server 2012 Hizmetleri" nde "SQL Server" a sağ tıklayın ve "Yeniden Başlat" ı seçin.
Geliştirici Marius Žilėnas

10
TCP Bağlantı Noktasının IPAII altında 1433 olmasına dikkat edin.
Geliştirici Marius Žilėnas

Veya uygulamanızdaki bağlantı noktası numarasını IPAII altındaki TCP Dinamik Bağlantı Noktalarının değeriyle değiştirin. Bunu çalıştırmak için yaptığım şey buydu, çünkü değeri değiştiremem.
AlieneilA

Ayrıca sql sunucu kimlik doğrulamasının etkinleştirildiğinden emin olun: Seçili sunucunun Özelliklerine gidin (sağ tıklama menüsünden). Şimdi Güvenlik sayfasına gidin ve Sunucu kimlik doğrulaması altında SQL Sunucusu ve Pencere Kimlik Doğrulaması modunu seçin. Şimdi Güvenlik> Oturum Açma Bilgileri'ni genişletin ve sunucu adına sağ tıklayın ve Özellikler'i seçin. ... Tamam'a tıklayın ve SQL sunucusunu yeniden başlatın ( nükleustechnologies.com/blog/… )
Patrick Koorevaar

111

Kolay Çözüm

Başlat-> Tüm Programlar-> Microsoft SQL Server 2012-> Yapılandırma Aracı -> SQL Server Yapılandırma Yöneticisi -> SQL Server Ağ Yapılandırmasını Genişlet-> Protokol -> TCP / IP'yi Etkinleştir Sağ kutusunu tıklayın

TCP / IP'ye çift tıklayın ve IP Adreslerine dokunun ve TCP portu altında 1433 numaralı porta dokunun.

görüntü açıklamasını buraya girin


2
Bu adımları izledikten sonra, çalışması için sunucumu durdurup yeniden başlatmam gerekti. Teşekkürler!
bluefox

16

Hata kendinden açıklamalıdır:

  • SQL sunucunuzun gerçekten çalışıp çalışmadığını kontrol edin
  • SQL sunucusu ana bilgisayar adını, kullanıcı adını ve şifresinin doğru olup olmadığını kontrol edin
  • 1433 numaralı bağlantı noktasına TCP bağlantısını engelleyen bir güvenlik duvarı kuralı olmadığını kontrol edin
  • Ev sahibinin gerçekten ulaşılabilir olup olmadığını kontrol edin

Sık kullandığım iyi bir kontrol, telnet kullanmaktır, örneğin bir Windows komut istemi çalıştırmasında:

telnet 127.0.0.1 1433

Boş bir ekran görürseniz, bu ağ bağlantısının başarıyla kurulduğunu gösterir ve bu bir ağ sorunu değildir. 'Ana bilgisayara bağlantı açılamadı' mesajı alırsanız, bu ağ sorunudur


1
Telnet 127.0.01 1433'ü denedim, 127.0.01'e bağlanmanın ana bilgisayara bağlantı açılamadığını söylüyor veya 1433 bağlantı noktası başarısız oldu
Aysha Nijhawan

1
Bu nedenle, büyük olasılıkla sunucuyu yüklemediniz, sunucu çalışmıyor veya bağlantıyı engelleyen bir güvenlik duvarınız var. Bu normalde bir java programı sorunu değildir
gerrytan

11

Başlat-> Tüm Programlar-> Microsoft SQL Server 2012-> Konfigürasyon Aracı -> SQL Server Konfigürasyon Yöneticisi'ne tıklayın. görüntü açıklamasını buraya girin

SQL Server / SQL Server Browser State'in 'durduğunu' görürseniz SQL Server / SQL Server Browser'a sağ tıklayın ve start'a tıklayın. Bazı durumlarda, 1433 numaralı bağlantı noktasına TCP bağlantısı atanmış olmasına rağmen yukarıdaki durum durabilir.


bana çok yardım etti. İstemci bağlantılarını yapmak için çalışması gereken temel bileşen olan tarayıcı devre dışı bırakıldı.
Mayur

3

Hatanın dediği gibi, sql sunucunuzun 1433 numaralı bağlantı noktasında çalıştığından ve dinlediğinden emin olmanız gerekir. Sunucu çalışıyorsa 1433 numaralı bağlantı noktasında bağlantıyı reddeden bir güvenlik duvarı kuralı olup olmadığını kontrol etmeniz gerekir.

Sorun gidermede yararlı olabilecek komutlar şunlardır:

  1. netstat -aSql sunucusunun istenen bağlantı noktasını dinleyip dinlemediğini kontrol etmek için kullanın
  2. Gerrytan'ın cevapta bahsettiği gibi telnet, ana bilgisayar ve bağlantı noktasında yapmayı deneyebilirsiniz.

Bence OP, mysql değil sql sunucusu kullanıyor
SpringLearner

@AyshaNijhawan Dinlediği bağlantı noktasını kontrol ettiniz mi? Aynı ip / port ve kimlik bilgilerini kullanarak komut istemi veya bir sql istemcisi aracılığıyla sql sunucusuna bağlanmayı deneyin.
Juned Ahsan

Port 1433 ve onu bağlantı dizesine koyarak kullanmayı denedim. Adlandırılmış yöneltmeler, bellek ve TCP / IP, SQL sunucusu N / W yapılandırmasında etkinleştirilir -> MSSQLSERVER için Protokoller
Aysha Nijhawan

0

önemli:
herhangi bir değişiklik veya yeni ayardan sonra SQLSERVERservisi yeniden başlatmanız gerekir . çalıştırmak services.mscüzerindeWindows


0

Adlandırılmış bir örnek kullanıyorsanız, kullandığınız bağlantı noktası muhtemelen 1433 yerine 1434'tür, bu nedenle lütfen yukarıda bahsedilen telnet veya netstat kullanarak bunu kontrol edin.


0

% Windir% \ System32 klasörünü açın ve SQLServerManagerXX.msc'yi bulun

Örneğin:

C: \ Windows \ System32 \ SQLServerManager14.msc

Protokol ayarlarına gidin ve ardından TCP / IP bağlantı noktasını etkinleştirin varsayılan olarak 1433'tür

görüntü açıklamasını buraya girin

görüntü açıklamasını buraya girin

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.