मैं आज लगभग 3 घंटे के लिए इसका शोध कर रहा हूं, और मुझे लगता है कि मैं करीब हूं, लेकिन मेरे पास कुछ प्रश्न हैं। अब तक मिली जानकारी के लिए सबसे अच्छा स्रोत यहां है: https://stackoverflow.com/a/2840358, लेकिन यह मेरे सभी सवालों का जवाब नहीं देता है।मैं जेडीबीसी डेटाबेस यूआरएल कैसे उत्पन्न करूं?
एक छोटी सी पृष्ठभूमि: मैं माइक्रोसॉफ्ट एसक्यूएल सर्वर 2014 का उपयोग कर रहा हूं और मैंने सत्यापित किया है कि आईपी पता, 127.0.0.1, पोर्ट 1433 के साथ सक्रिय और सक्षम है। मुझे SQL सर्वर प्रोग्राम के माध्यम से डेटाबेस से कनेक्ट करने में कोई समस्या नहीं है उसी मशीन पर, लेकिन मैं एक जावा प्रोग्राम से कनेक्ट करने की कोशिश कर रहा हूं जिसे मैं लिख रहा हूं, और वर्तमान में यह त्रुटि दे रहा है: com.microsoft.sqlserver.jdbc.SQLServerException: पोर्ट नंबर 1433/R2M_Database मान्य नहीं है। मैं इससे उलझन में हूं क्योंकि मुझे पता है कि पोर्ट 1433 सही है, और मुझे पता है कि जिस डेटाबेस से मैं कनेक्ट करना चाहता हूं उसे R2M_Database कहा जाता है। अब, मेरे स्रोत कोड के साथ मेरे प्रश्न यहां दिए गए हैं।
1.) "mysql" और "sqlserver" subprotocols के बीच क्या अंतर है, और मुझे कैसे पता चलेगा कि किस का उपयोग करना है? (मुझे पूरा यकीन है कि मुझे एसक्लसेवर का उपयोग करना चाहिए, लेकिन बस मामले में)
2.) मैं कैसे सुनिश्चित करूं कि मैं सही होस्टनाम का उपयोग कर रहा हूं? (मुझे यकीन है कि 127.0.0.1/लोकलहोस्ट वह है जिसे मैं उपयोग करना चाहता हूं, लेकिन मैं इस प्रोग्राम को अन्य मशीनों से डेटाबेस तक पहुंचने में कैसे सक्षम करूं?)
3.) क्या कोई है बाहरी समस्याएं जो इसे फ़ायरवॉल या पासवर्ड आवश्यकताओं के कारण उत्पन्न कर सकती हैं?
import java.sql.DriverManager;
import java.io.BufferedReader;
import java.io.FileReader;
import org.apache.ibatis.jdbc.ScriptRunner;
public class SQLTest {
public static void main(String[] args){
String script = "CreatePersons.sql";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
new ScriptRunner(DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=R2M_Database", userName, password))
.runScript(new BufferedReader(new FileReader(script)));
} catch (Exception e) {
System.err.println(e);
}
}
}
मैं एक मामूली वाक्य रचना परिवर्तन किया:
संपादित करें (मैं काफी हद तक निश्चित है कि उपयोगकर्ता नाम और पासवर्ड सही रूप में वे लोगों को मैं सफलतापूर्वक Microsoft SQL सर्वर में एक कनेक्शन 2014 प्राप्त करने के लिए का उपयोग कर रहे हैं रहा हूँ) (; डेटाबेस नाम = इसके बजाए), और अब मुझे यह त्रुटि मिल रही है:
com.microsoft.sqlserver.jdbc.SQLServerException: उपयोगकर्ता 'RSquaredMacro' के लिए लॉगिन विफल रहा। ClientConnectionId: 35281a40-0f87-42e4-bc46-b9a81a371529
आप मुसीबत को जोड़ने कर रहे हैं, सबसे अधिक संभावना समस्या यह है कि आप अभी तक टीसीपी से सक्षम नहीं किया है/पोर्ट 1433 पर आईपी श्रोता। एक त्वरित "netstat -an" कमांड आपको बताएगा कि क्या यह सुन रहा है। जांचें और टिप्पणी करें कि आपको क्या मिला ??? –
यह तब हुआ जब मैंने "netstat -an" किया था: [लॉग की छवि] (http://i.imgur.com/vjh2LZO) – user1654889
आपके आंकड़े के अनुसार, पोर्ट नंबर। 1433 सुन रहा है। तो, यह बिल्कुल कोई समस्या नहीं है! –