JDBC कनेक्शन विफल, त्रुटि: होस्ट करने के लिए TCP / IP कनेक्शन विफल


85

मैं जावा क्लास फाइल को SQL सर्वर 2012 से जोड़ना चाहता हूं। मैंने SQL सर्वर प्रमाणीकरण के साथ लॉग इन किया है। लेकिन मुझे कनेक्टिविटी में त्रुटि प्राप्त हो रही है।

त्रुटि: मेजबान के लिए टीसीपी / आईपी कनेक्शन 127.0.0.1, पोर्ट 1433 विफल रहा है। त्रुटि: "कनेक्शन ने इनकार कर दिया: कनेक्ट करें। कनेक्शन गुणों को सत्यापित करें। सुनिश्चित करें कि SQL सर्वर का एक उदाहरण होस्ट पर चल रहा है और पोर्ट पर टीसीपी / आईपी कनेक्शन स्वीकार कर रहा है। सुनिश्चित करें कि पोर्ट के लिए टीसीपी कनेक्शन एक आग से अवरुद्ध नहीं हैं। । "।

मेरा कोड ---

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));
}

स्थानीय कंप्यूटर ने आपको पोर्ट 1433 से कनेक्ट करने की अनुमति देने से इनकार कर दिया है। यह एक फ़ायरवॉल समस्या है। यह भी सुनिश्चित करें कि वास्तव में पोर्ट पर कुछ सुन रहा है
MadProgrammer

जवाबों:


207
  1. SQL सर्वर कॉन्फ़िगरेशन प्रबंधक खोलें, और उसके बाद SQL सर्वर 2012 नेटवर्क कॉन्फ़िगरेशन का विस्तार करें।
  2. InstanceName के लिए प्रोटोकॉल पर क्लिक करें, और फिर सुनिश्चित करें कि दाहिने पैनल में TCP / IP सक्षम है और TCP / IP पर डबल-क्लिक करें।
  3. प्रोटोकॉल टैब पर, सभी आइटम सुनो के मूल्य पर ध्यान दें।
  4. IP पते टैब पर क्लिक करें: यदि सभी का मान सुनो, तो SQL सर्वर 2012 के इस उदाहरण के लिए TCP / IP पोर्ट संख्या IPAll के तहत TCP डायनेमिक पोर्ट्स आइटम का मान है। यदि सभी के श्रवण का मूल्य नहीं है, तो SQL Server 2012 के इस उदाहरण के लिए TCP / IP पोर्ट संख्या एक विशिष्ट IP पते के लिए TCP डायनेमिक पोर्ट्स आइटम का मान है।
  5. सुनिश्चित करें कि टीसीपी पोर्ट 1433 है।
  6. ओके पर क्लिक करें।

यदि कोई और प्रश्न हैं, तो कृपया मुझे बताएं।

धन्यवाद।


15
और परिवर्तन करने के बाद अपनी SQL आवृत्ति को पुनरारंभ करना न भूलें।
जिमगूड्स

16
निम्नानुसार अपने SQL उदाहरण को पुनरारंभ करें: "SQL सर्वर कॉन्फ़िगरेशन प्रबंधक" पर -> "SQL सर्वर 2012 सेवाएँ" "SQL सर्वर" पर राइट-क्लिक करें और "पुनरारंभ करें" चुनें।
डेवलपर Marius ėilėnas 7

10
IPAII के तहत टीसीपी पोर्ट 1433 सुनिश्चित करने के लिए ध्यान दें।
डेवलपर Marius ėilėnas 5

या IPAII के तहत टीसीपी डायनेमिक पोर्ट के मूल्य में अपने एप्लिकेशन में पोर्ट नंबर को बदलें। यही कारण है कि मैंने यह काम करने के लिए किया, क्योंकि मैं मूल्य नहीं बदल सकता।
एलिनाइला

यह भी सुनिश्चित करें कि SQL सर्वर प्रमाणीकरण सक्षम है: चयनित सर्वर के गुणों पर जाएं (दाएं क्लिक मेनू से)। अब सिक्योरिटी पेज पर जाएं और सर्वर ऑथेंटिकेशन के तहत एसक्यूएल सर्वर और विंडो ऑथेंटिकेशन मोड का विकल्प चुनें। अब सुरक्षा> लॉगिन का विस्तार करें और सर्वर नाम पर राइट-क्लिक करें, और गुण चुनें। ... ठीक पर क्लिक करें और SQL सर्वर ( nucleustechnologies.com/blog/… ) को फिर से शुरू करें
पैट्रिक कोइवरार

111

आसान समाधान

स्टार्ट-> ऑल प्रोग्राम्स-> Microsoft SQL सर्वर 2012-> कॉन्फ़िगरेशन टूल -> SQL सर्वर कॉन्फ़िगरेशन मैनेजर पर क्लिक करें -> SQL सर्वर नेटवर्क कॉन्फ़िगरेशन का विस्तार करें-> प्रोटोकॉल -> TCP / IP राइट बॉक्स सक्षम करें

TCP / IP पर डबल क्लिक करें और IP Adresses टैप पर जाएं और TCP पोर्ट के तहत 1433 पोर्ट डालें।

यहां छवि विवरण दर्ज करें


2
इन चरणों का पालन करने के बाद, मुझे काम करने के लिए अपने सर्वर को रोकना और फिर से शुरू करना पड़ा। धन्यवाद!
ब्लूस्क्रीन

16

त्रुटि स्वयं व्याख्यात्मक है:

  • जांचें कि क्या आपका SQL सर्वर वास्तव में ऊपर और चल रहा है
  • SQL सर्वर होस्टनाम, उपयोगकर्ता नाम और पासवर्ड की जाँच करें सही है
  • 1433 पोर्ट के लिए टीसीपी कनेक्शन को अवरुद्ध करने वाला कोई फ़ायरवॉल नियम नहीं है
  • होस्ट की जाँच करें वास्तव में उपलब्ध है

एक अच्छा चेक जो मैं अक्सर इस्तेमाल करता हूं वह है टेलनेट का उपयोग करना, जैसे कि विंडोज़ कमांड प्रॉम्प्ट रन:

telnet 127.0.0.1 1433

यदि आपको एक रिक्त स्क्रीन मिलती है तो यह नेटवर्क कनेक्शन को सफलतापूर्वक स्थापित करने का संकेत देता है, और यह नेटवर्क समस्या नहीं है। यदि आपको 'होस्ट से कनेक्शन नहीं खोल सका' तो यह नेटवर्क की समस्या है


1
मैंने टेलनेट 127.0.01 1433 की कोशिश की, यह कहते हैं कि 127.0.01` कनेक्टिंग होस्ट या पोर्ट के लिए खुला कनेक्शन नहीं है 1433 कनेक्शन विफल
आयशा निझावन

1
इसलिए यह बहुत संभावना है कि आपने सर्वर स्थापित नहीं किया है, सर्वर नहीं चल रहा है, या आपके पास कनेक्शन रोकने वाला फ़ायरवॉल है। यह आम तौर पर एक जावा कार्यक्रम का मुद्दा नहीं है
जेरेतन

11

Start-> All Programs-> Microsoft SQL Server 2012-> कॉन्फ़िगरेशन टूल -> SQL सर्वर कॉन्फ़िगरेशन मैनेजर पर क्लिक करें। यहां छवि विवरण दर्ज करें

यदि आप देखते हैं कि SQL सर्वर / SQL सर्वर ब्राउज़र स्टेट 'रोका' है। तो SQL सर्वर / SQL सर्वर ब्राउज़र पर क्लिक करें और स्टार्ट पर क्लिक करें। राज्य के ऊपर कुछ मामलों में रोकने के लिए हालांकि टीसीपी कनेक्शन पोर्ट 1433 को सौंपा गया है।


मेरी बहुत मदद की। ब्राउज़र अक्षम किया गया था जो कि महत्वपूर्ण घटक है जो क्लाइंट कनेक्शन बनाने के लिए चलना चाहिए।
मयूर

3

जैसा कि त्रुटि कहती है, आपको यह सुनिश्चित करने की आवश्यकता है कि आपका sql सर्वर 1433 पोर्ट पर चल रहा है और सुन रहा है। यदि सर्वर चल रहा है, तो आपको यह जांचने की आवश्यकता है कि पोर्ट 1433 पर कनेक्शन को अस्वीकार करने के लिए कुछ फ़ायरवॉल नियम है या नहीं।

यहां ऐसे आदेश दिए गए हैं जो समस्या निवारण के लिए उपयोगी हो सकते हैं:

  1. netstat -aवांछित पोर्ट पर sql सर्वर सुन रहा है या नहीं यह जांचने के लिए उपयोग करें
  2. जैसा कि उत्तर में जेरेतन ने उल्लेख किया है, आप telnetमेजबान और बंदरगाह पर करने की कोशिश कर सकते हैं

मुझे लगता है कि ओपी sql सर्वर का उपयोग कर रहा है mysql का नहीं
स्प्रिंगलैरर सेप

@AyshaNijhawan क्या आपने उस पोर्ट की जाँच की है जिसे वह सुन रहा है? इसके अलावा कमांड प्रॉम्प्ट या एक ही आईपी / पोर्ट और क्रेडेंशियल्स का उपयोग करके एक sql क्लाइंट के माध्यम से sql सर्वर से कनेक्ट करने का प्रयास करें।
अहसन

पोर्ट 1433 है, और मैंने इसे कनेक्शन स्ट्रिंग में डालकर उपयोग करने की कोशिश की है। नामांकित पाइप, मेमोरी और टीसीपी / आईपी एसक्यूएल सर्वर एन / डब्ल्यू कॉन्फिगरेशन में सक्षम हैं -> MSSQLSERVER के लिए प्रोटोकॉल
आयशा निझावन

0

महत्वपूर्ण:
किसी भी परिवर्तन या नई सेटिंग्स के बाद आपको SQLSERVERसेवा को पुनरारंभ करना होगा । services.mscपर चलेंWindows


0

यदि आप एक नामांकित उदाहरण का उपयोग कर रहे हैं, तो संभावना है कि आप 1433 के बजाय 1434 के बजाय पोर्ट का उपयोग कर रहे हैं, इसलिए कृपया देखें कि टेलनेट या नेटस्टैट उपरोक्त का उपयोग करके भी।


0

% Windir% \ System32 फ़ोल्डर खोलें और SQLServerManagerXX.msc ढूंढें

उदाहरण के लिए:

C: \ Windows \ System32 \ SQLServerManager14.msc

प्रोटोकॉल सेटिंग्स पर जाएं तो टीसीपी / आईपी पोर्ट को डिफ़ॉल्ट रूप से 1433 सक्षम करें

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.