Zum Inhalt springen

Fehler bei Verbindung zu einer MSSQL-Express Datenbank


Gast alexC++

Empfohlene Beiträge

Hallo,

ích möchte eine Verbindung zu einer MSSQL SQLEXPRESS Datenbank herstellen aber

es funktioniert leider nicht! :upps


import java.sql.*;


public class _Connect {



    public static void main(String[] args) {


        String connectionUrl = "jdbc:sqlserver://RE2001\\SQLEXPRESS;" +    //RE2001\\SQLEXPRESS;

			"databaseName=Adressverwalung;integratedSecurity=true;"; ^

                                                                            //User ID=sa;Password=dbms


    Connection con = null;

    Statement stmt = null;

    ResultSet rs = null;


    try {

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

        con = DriverManager.getConnection(connectionUrl);


        String SQL = "SELECT * FROM Adresse";

        stmt = con.createStatement();

        rs = stmt.executeQuery(SQL);



        while (rs.next()) {

            System.out.println(rs.getString("Vorname") + " " + rs.getString("Nachname"));

        }

    }



    catch (Exception e) {

        e.printStackTrace();

    }

Folgender Fehler wird ausgegeben:

com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte keine Verbindung mit der benannten Instanz "" hergestellt werden. Fehler: java.net.SocketTimeoutException: Receive timed out.

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.getInstancePort(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)

at java.sql.DriverManager.getConnection(DriverManager.java:562)

at java.sql.DriverManager.getConnection(DriverManager.java:208)

at _Connect.main(_Connect.java:18)

Ist der Treiber nur für MS SQL2005 und nicht für die Express-Edition?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wow!

Lies mal die Doku.

Es ist ziemlich uninteressant wie der Server heißt.

Wenn bei mir auf dem Server eine Instanz mit dem Namen xyz läuft kann ich noch lange nicht "ping xyz" ausführen. Was dann dazu führt dass die Datenbankinstanz nicht gefunden werden kann.

Ich kenn die genaue Syntax für dieses Mysql-Express zwar nicht, aber es muss auf jeden Fall der Hostname angegeben werden, lokal dann z.B. "localhost" oder "127.0.0.1".

Die Instanz ist eigentlich uninteressant, da jede Instanz auf nem eigenen Port hört. D.h. über localhost:10001 kommst du an Instanz1, über localhost:10002 auf die Instanz2 u.s.w. Jenachdem wie das ganze konfiguriert ist.

Edit:

ping RE2001

funktioniert? Das bezweifel ich mal. Das funktioniert nur dann wenn

a) der Hostname deines Rechners RE2001 heißt oder

B) im Netzwerk ein Rechner mit dem Namen RE2001 steht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Adressverwalung ist schon korrekt so, habe die datenbank versehentlich so angelegt! :D

und RE2001 ist der Name meines Rechners ja!

habe es auch schon mit locahlhost probiert, geht aber auch nicht!

jdbc:sqlserver://RE2001\SQLEXPRESS:1433;databaseName=Adressverwalung;integratedSecurity=true;

habe den Standardport hinzugefügt!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ups..würd mal sagen dein Hostname ist falsch.

Die MS-Docu sagt folgendes zu dem ConnectionString:


String connectionUrl = "jdbc:sqlserver://localhost:1433;" +

   "databaseName=AdventureWorks;user=MyUserName;password=*****;";

Wäre in deinem Fall dann

jdbc:sqlserver://localhost:1433;databaseName=Adressverwalung;integratedSecurity=true;

Link zu diesem Kommentar
Auf anderen Seiten teilen

habe ich auch schon probiert!

Da ich den Express Server habe, heißt das Ding dann so --> Rechnername/SQLEXPRESS

da kann ich leider nichts machen!

habe aber wie gesagt, schon genannte x mal probiert!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du die Verbindungsmöglichkeiten vom SQLServer angepasst?

Standardmäßig lässt die Express-Edition nämlich nur SharedMemory-Verbindungen zu, da kommst mit jdbc nicht weit. Du musst ihn also so konfigurieren, dass er Verbindungen auch über TCP entgegennimmt.

Das machst du entweder unter Systemsteuerung->Verwaltung->Computerverwaltung oder mit dem SQL Management Studio Express

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi, also so viel ich weiß muss der Instanzname aufjedenfall mit dazu.

Den MS SQL Server kenne ich, leider bin ich in Java nicht so fit, dass ich dir den Connection-String posten kann.

Downloade dir mal von Microsoft das Management Studio, sofern noch nicht vorhanden. Hier kannst du dich auf das Datenbankmodul connecten, wober der Server so angegeben wird "Hostname\Instanz"

So kannst du feststellen ob alle Dienste ordnungsgemäß laufen.

Die TCP Connectioneigenschaft aktivierst du folgendermaßen:

Start -> Programme -> SQL Server -> Konfigurationstools -> SQL Server Configuration Manager

Hier musst du unter Netzwerkkonfiguration das Protokoll aktivieren.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich habs bei mir mal gerade nachgebaut. Und es klappt.

Mein/DEIN Quellcode:

import java.sql.*;

public class _Connect {

public static void main(String[] args) {

String connectionUrl = "jdbc:sqlserver://localhost;" + //RE2001\\SQLEXPRESS;

"databaseName=Adressverwalung;integratedSecurity=true;";

//User ID=sa;Password=dbms

Connection con = null;

Statement stmt = null;

ResultSet rs = null;

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

con = DriverManager.getConnection(connectionUrl);

String SQL = "SELECT * FROM Adresse";

stmt = con.createStatement();

rs = stmt.executeQuery(SQL);

while (rs.next()) {

System.out.println(rs.getString("Vorname") + " " + rs.getString("Nachname"));

}

}

catch (Exception e) {

e.printStackTrace();

}

}

}

Probiers mal...

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

com.microsoft.sqlserver.jdbc.SQLServerException: Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden. java.net.ConnectException: Connection refused: connect

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(Unknown Source)

at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(Unknown Source)

at java.sql.DriverManager.getConnection(DriverManager.java:562)

at java.sql.DriverManager.getConnection(DriverManager.java:208)

at _Connect.main(_Connect.java:17)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...