# Plötzlich keine Verbindung zur Datenbank mehr möglich



## raptorrs (9. Nov 2021)

Moin Zusammen!
Ich bin leider völlig verzweifelt, weil ich seit ein paar Tagen keine Verbindung mehr zu meiner Datenbank herstellen kann. Die Angelegenheit lief bis dahin stets fehlerfrei.
Die Datenbank liegt auf C:/xampp/mysql/data und heisst: Eierlei2.
Die Methode, die die Exception wirft, heisst:

[CODE lang="java" title="DB-Verbindungsaufbau"]    

private Db() throws ClassNotFoundException, SQLException
    {
        Properties props = PropertyLoader.get();
        String driverName = props.getProperty("db.driver");
        System.out.println("In Db ist DriverName = "+driverName);
        System.out.println("In Db ist DB.URL = "+props.getProperty("db.url"));
        loadDatabaseDriver(driverName);
        printAllDrivers();
        connection = DriverManager.getConnection(props.getProperty("db.url"));
//        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/Eierlei2", "root", "root") ;
        System.out.println("In Db ist DB.Connection = "+connection);
    }[/CODE]

Die Exception lautet: 
Communication Link Failure
The last packet sent successfully to the server was 0 milliseconds ago. The Driver has not recieved any packets from the server.

Das Configuraion.Properties File lautet:
[CODE lang="java" title="Configuraion.properties"]# ResourceBundle properties file
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.2.106:3306/eierlei2
user=root&password=root&autoReconnect=true&useSSL=false[/CODE]

Benutze ich die oben auskommentierte Zeile für die Connection, kommt die Exception:
Access denied for user 'root'@'localhost' (using password:YES)

Über phpmyadmin kann ich die Datenbank wunderbar erreichen.

Ich bitte Euch ganz dringend um Hilfe, ich habe keine Ideen mehr.

Besten Dank im Voraus!!
raptorrs


----------



## kneitzel (9. Nov 2021)

Dann prüf einmal die Login-Daten. Die Fehlermeldung:
`Access denied for user 'root'@'localhost' (using password:YES)`
ist ja recht eindeutig - das sieht also danach aus, dass der root@localhost account entweder ein anderes Passwort hat oder eben anderweitig nicht zugänglich ist.


----------



## raptorrs (9. Nov 2021)

Ich habe mal phpmyadmin die Rechte zu dieser DB angeschaut. Leider kann ich das Ergebnis nicht wirklich interpretieren :-(


----------



## mihe7 (9. Nov 2021)

Wenn es den User root gibt, wird das Passwort vermutlich einfach nicht "root" sein. 

Besser wäre vermutlich, den Benutzer eierlei2 zu verwenden.

Zum Code selbst: in den Properties gehst Du gegen irgendeine IP-Adresse, im Code gegen localhost. Außerdem ist in der DB-URL in den Properties der DB-Name in Kleinbuchstaben angegeben, während im Code der erste groß ist.


----------



## raptorrs (9. Nov 2021)

Gross- und Kleinschreibung machen keinen Unterschied. Ich habe extra zwei verschiedene Connects in der Methode, damit ich hin- und her probieren kann. Der User Eierlei2 oder eierlei2 ergibt auch nix Brauchbares.
Dann habe ich in Netbeans unter Services noch mal nachgeschaut:



Da gibt es offensichtlich irgendwo keine Verbindung.
Rechtsclick und dann Start ergibt :
MySQL konnte nicht gestartet werden 
und ein MySQL Server Properties Fenster poppt auf. Da kann ich aber auch nur ein Password eingeben. Egal, was ich da eingebe, das Fenster poppt immer wieder auf.


----------



## mihe7 (9. Nov 2021)

Mach mal eine Verbindung zu localhost und nicht zu 192.168.2.106.


----------



## raptorrs (9. Nov 2021)

Hab ich schon probiert. Istalles das gleiche.
Wenn ich oben auf den mySQL server (Disconnected) einen Rechtsclick mache und verbinden anwähle, kommt dieses Bildchen:

Kann es sein, dass da irgendetwas im Classpath eingetragen werden muss? Und wenn ja, wie man so etwas?
Wenn ich auf Edit my MySQL connection properties clicke, kann ich eingeben was ich will, nix funktioniert.


----------



## Oneixee5 (9. Nov 2021)

raptorrs hat gesagt.:


> # ResourceBundle properties file
> db.driver=com.mysql.jdbc.Driver


Das ist auch völlig veraltet, evtl. wurde ein Update der DB eingespielt und jetzt funktioniert der Uralt-Treiber nicht mehr.
Welche Version hat die DB und welche der Treiber?
Normalerweise registriert sich der Treiber selbst, aktuell wäre das `com.mysql.cj.jdbc.Driver.`. Treiber selbst zu laden oder selbst zu registrieren dürfte normalerweise gar nicht mehr nötig sein.


----------



## mihe7 (9. Nov 2021)

raptorrs hat gesagt.:


> Wenn ich oben auf den mySQL server (Disconnected) einen Rechtsclick mache und verbinden anwähle, kommt dieses Bildchen:


OK, das ist eine andere Baustelle. Da fehlt wohl der JDBC-Treiber. Schau mal unter Drivers in die Properties, welches Jar dort eingetragen ist und ob das auch tatsächlich existiert. Danach Rechtsklick auf den Treiber, den du angeschaut hast -> New Connection (das ist nur grob skizziert, hab NB grad nicht zur Hand).


----------



## raptorrs (9. Nov 2021)

Das ist ja genau das Problem. In dem letzten Bildchen steht ja, dass der com.mysql,cj.jdbc.Driver nicht geladen werden kann. Die Frage ist: Wieso??
Hier mal ein paar Versionshinweise:

Ich habe kein Ahnung, wo ich den Treiber finden soll, geschweige denn seine Versionnummer :-(


----------



## Oneixee5 (9. Nov 2021)

Warum willst du dich zu einer MariaDB mit einem MySQL-Treiber verbinden?


----------



## raptorrs (9. Nov 2021)

in meinem heutigen Post von 12:02 ist der Ordner: Drivers geöffnet.


----------



## raptorrs (9. Nov 2021)

In meinem Netbeans-Projekt ist im Ordner Libraries ein Jar-File mit einem SQL-Connector beigefügt. Damit lief das Programm bis vor ein paar 
Tagen supergut. Die Jar wird anscheinend nicht mehr gefunden. Wenn ich im dist-ordner nachschaue, ist die Jar auch im Lib-Verzeichnis vorhanden.


----------



## mihe7 (9. Nov 2021)

Langsam, das sind zwei völlig verschiedene Dinge. In Kommentar #13 geht es um Dein Projekt, in #5 und #7 um NetBeans.

Mein Vorschlag wäre, erstmal via NetBeans eine Verbindung herzustellen und dann den Spaß in das Projekt zu übernehmen.

Daher beziehe ich mich mal auf den Screenshot aus #5. An der gezeigten Stelle auf MySQL (Connector/J driver) einen Rechtsklick machen. Dort Properties (o. ä.) aufrufen, und nachschauen, welches Jar dort verwendet wird und ob dieses Jar auch existiert.


----------



## raptorrs (9. Nov 2021)

Hallo, Ihr Lieben!
ich habe es hinbekommen. Ich weiss zwar nicht wieso, aber die folgende Zeile ist der Winner:
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/Eierlei2", "root", "") ;
Ich habe einfach das Password ausgelassen.
Nochmals herzlichen Dank für Eure Teilname!!!


----------

