Ich habe das heute ungefähr 3 Stunden lang untersucht, und ich fühle mich, als ob ich nah dran bin, aber ich habe ein paar Fragen. Die beste Quelle für Informationen, die ich bisher gefunden habe, ist hier: https://stackoverflow.com/a/2840358, aber es beantwortet nicht alle meine Fragen.Wie erzeuge ich eine JDBC-Datenbank-URL?
Ein wenig Hintergrund: Ich verwende Microsoft SQL Server 2014 und ich habe überprüft, dass die IP-Adresse 127.0.0.1 aktiv ist und mit dem Port 1433 aktiviert ist. Ich habe keine Probleme mit der Datenbank über das SQL Server-Programm auf demselben Computer, aber ich versuche, eine Verbindung über ein Java-Programm herzustellen, das ich schreibe, und es gibt derzeit diesen Fehler: com.microsoft.sqlserver.jdbc.SQLServerException: Die Portnummer 1433/R2M_Database ist nicht gültig. Ich bin verwirrt, weil ich weiß, dass der Port 1433 korrekt ist, und ich weiß, dass die Datenbank, die ich verbinden möchte, R2M_Database heißt. Nun, hier sind meine Fragen zusammen mit meinem Quellcode.
1.) Was ist der Unterschied zwischen den Subprotokollen "mysql" und "sqlserver", und woher weiß ich, welche zu verwenden? (Ich bin mir ziemlich sicher, dass ich sqlserver verwenden sollte, aber nur für den Fall)
2.) Wie stelle ich sicher, dass ich den richtigen Hostnamen verwende? (Ich bin mir ziemlich sicher, dass 127.0.0.1/localhost der ist, den ich verwenden soll, aber wie kann ich dieses Programm von anderen Rechnern ausführen, um auf die Datenbank zuzugreifen?)
3.) Gibt es welche? externe Probleme, die dies verursachen könnten wie Firewalls oder Passwortanforderungen? (Ich bin ziemlich sicher, dass der Benutzername und das Passwort korrekt sind, da sie die, die ich erfolgreich verwenden sind, um eine Verbindung in Microsoft SQL Server zu erhalten 2014)
EDIT:
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);
}
}
}
ich eine leichte Syntax Änderung (; Datenbankname = anstelle von /), und jetzt erhalte ich diesen Fehler:
com.microsoft.sqlserver.jdbc.SQLServerException: Anmeldung fehlgeschlagen für Benutzer 'RSquaredMacro'. ClientConnectionId: 35281a40-0f87-42e4-bc46-b9a81a371529
Wenn Sie Probleme haben, verbinden, höchstwahrscheinlich das Problem ist, dass Sie noch nicht die TCP aktiviert haben/IP-Listener an Port 1433. Ein kurzer "netstat -an" -Befehl sagt Ihnen, ob er gehört hat. Überprüfen und kommentieren Sie, was Sie bekommen haben ??? –
Dies ist, was ich bekam, als ich "netstat -an" machte: [Bild von Protokoll] (http://i.imgur.com/vjh2LZO) – user1654889
Gemäß Ihrer Abbildung, Port-Nr. 1433 hört zu. Es ist also überhaupt kein Problem! –