Datenbankverbindung Java MySQL Exception

Status
Nicht offen für weitere Antworten.

Eisscholle

Mitglied
Hallo,

ich will mit folgendem Teilprogramm die Verbindung zu meiner lokalen Datenbank aufbauen:


Code:
public class Mysql
  {

  public static void main( String[] argv )
    {

    String treiber=null, DbUrl=null ;

    treiber = "org.gjt.mm.mysql.Driver" ;

    DbUrl = "jdbc:mysql://localhost:3306/test";

     try {
	 
         Class.forName( treiber ).newInstance();
	  	 System.out.println("geht noch");
         Connection cn = DriverManager.getConnection( DbUrl, "root", "****" );
	  System.out.println("geht nicht mehr");

Lokal funktioniert es super. Auf meinem Server geht er mir hiermit krachen:

Code:
geht noch
java.sql.SQLException: Access denied for user 'benutzername'@'servername.de' (using password: YES)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3333)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1232)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:2749)
        at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at Mysql.main(Mysql.java:27)
Zeile 27 ist
Code:
Connection cn = DriverManager.getConnection( DbUrl, "root", "****" );
.

Scheinbar spinnt mein Passwort. Jetzt habe ich mit PHP ein kleines Skript gemacht. Host, Passwort und Benutzername identisch zum Java-Programm. Und dort geht es! Wieso??? Das einzige was mich verwundert, ist dass er in der ersten Zeile der Fehlermeldung aus localhost die wirkliche Serverdomain (servername.de) macht. Nun habe ich schonmal unter phpmyadmin, DB mysql, Tabelle user irgendwie den Host geändert aber nix brachte es. Es steht dort jetzt wieder localhost. Als anderer Benutzer habe ich es auch probiert - geht nicht mit Java. Wo hat der da ein allg. Problem?

Danke!

VG
 

Eisscholle

Mitglied
Hi,

hat keiner eine Idee? ich habe jetzt sogar noch einen anderen Treiber probiert und in meine Tabelle user von mysql unter host zu meinem Usernamen alles mögliche eingetragen. Nix funktioniert! Irgendwelche Tipps etc., was ich noch überprüfen kann?

Danke!
 
G

Guest

Gast
Code:
GRANT SELECT, UPDATE ON deinedb.* TO 'benutzername'@'servername.de' IDENTIFIED BY 'Passwort'
 

Eisscholle

Mitglied
Hi,

jetzt bin ich schon ein Stück weiter, weiß aber immer noch nicht wieso er jetzt hängt.

Gleicher Code wie oben, Fehler ist jetzt:

Code:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Access denied for user 'benutzer1'@'vserver.server.de' to database 'benutzer1'
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:870)
        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3333)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1232)
        at com.mysql.jdbc.Connection.createNewIO(Connection.java:2749)
        at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at Mysql.main(Mysql.java:27)
Datenbankname und Benutzername sind gleich....
Zeile 27 dabei:

Code:
Connection cn = DriverManager.getConnection( DbUrl, "benutzer1", "passwort" );

DbUrl:

Code:
DbUrl = "jdbc:mysql://vserver.server.de:3306/benutzer1";

Bei phpmyadmin kann man ja die Rechte wunderbar ablesen. Die lauten bei mir:

Code:
Benutzer | Host | Passwort | Globale Rechte | Grant
benutzer1   %                        Ja      ALL PRIVILEGES   	Ja
benutzer1   localhost 	            Ja 	   ALL PRIVILEGES 	Ja
benutzer1   vserver 	           Ja 	  ALL PRIVILEGES 	Ja
benutzer1   vserver.server.de  Ja    ALL PRIVILEGES 	Ja

In der Tabelle db von mysql steht wieder das gleiche. Jeweils für den Host und den benutzer1 und kompletten Zugriff. Aber wieso lässt der mich dann nicht auf die DB zugreifen? Mit PHP gehts ja.

Danke.
 

Eisscholle

Mitglied
hat jmd. zufällig noch eine Idee oder kann sich mit mir auf Fehlersuche begeben? Weil ich ahbe bis jetzt nichts gefunden und verstehe auch nicht wieso es nicht geht.
 
T

tuxedo

Gast
Wo hängt denn der Datenbankrechner? Im Internet? Wenn ja:
Die allermeisten Provider lassen verbindungen ausserhalb von "localhost" nicht zu.

Aber ich seh gerade: Du hast nen vServer? Hast du die Firewall kontrolliert? Kannst du "testweise" eine Telnet-Verbindung zum Port 3306 des MYSQL-Servers herstellen? Wenn ja, dann liegts an den Berechtigungen in der DB. Wenn nein: Firewall oder sonst ein COnfig-Problem. Hast du den MySQL-Server auch so eingestellt dass er außerhalb von localhost lauscht?

- Alex
 

Eisscholle

Mitglied
Hi,

der Rechner ist mein vServer. Ich habe root-Zugriff. Als Sever habe ich "localhost",Server-IP und 127.0.0.1 probiert. Immer der selbe Fehler.

Bei netstat -an steht:
tcp 0 0 server-ip:3306 0.0.0.0:* LISTEN

Der horcht also schon. Die Firewall habe ich jetzt nicht weiter kontrolliert, weil er ja nach außen normal horcht.

Gehe ich mit telnet auf den Port, sehe ich ganz cryptische Zeichen:

Code:
A
 5.0.41-Debian_1-logñ↨U~@bK2XD,☻+ImhBRU5GD`8
Tippe ich was.
Code:
Verbindung zu Host verloren.

Ich persönlich glaube fast, es liegt an der Datenbank. Weil der Fehler lautet ja

Code:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Access denied for user 'benutzer1'@'vserver.server.de' to database 'benutzer1'

Würde es am Host liegen usw., dann dürfte doch eine Meldung wie im ersten Beitrag kommen. Der meint ja wirklich, dass ich nicht als benutzer1 auf die Datenbank benutzer1 komme.

Datenbank mysql, Tabelle user, Spalten Host und User
Code:
localhost  	             benutzer1  
vserver.server.de 	benutzer1 	
vserver 	            benutzer1 	
% 	                       benutzer1

Datenbamk mysql, Tabelle db, Spalten Host, Db, User

Code:
%  	benutzer1  	benutzer1  	
localhost 	benutzer1 	benutzer1

Ich verstehe nicht, wieso ich mit PHP wunderbar drauf komme und mit javas solche Probleme habe. Damit komme ich wieder zu dem Schluss, dass es eigentlich nicht an der DB liegen kann, sondern an Java. Hier nochmal mein Java-Code:

Code:
import java.io.*;
import java.sql.*;

public class Mysql
  {

  public static void main( String[] argv )
    {

    String treiber=null, DbUrl=null ;

    //*** "Name des Datenbanktreibers eingeben
    treiber = "org.gjt.mm.mysql.Driver" ;
    treiber = "com.mysql.jdbc.Driver";
    //*** "Url der Databank eingeben *********
    //*** Server : linux
    //*** Service-Nummer : 3306
    //*** Bezeichnung der Datenbank : benutzer1
    DbUrl = "jdbc:mysql://localhost:3306/benutzer1?user=benutzer1&password=password";

     try {

         //*** Treiber laden ***********************************
         Class.forName( treiber ).newInstance();
          //*** Verbindung aufnehmen:    ************************
          //*** Der User peter mit Kennwort mysql moecht was wissen
                 System.out.println("geht noch"); //hier geht es noch
         Connection cn = DriverManager.getConnection( DbUrl ); //hier steigt er dann aus
          System.out.println("geht nicht mehr"); //das kommt schon nicht mehr

Hat jmd. noch Ideen? Weil ich weiß nicht mehr weiter aber es muss ja gehen!
 
T

tuxedo

Gast
Okay, wenn das mit Telnet auf Port 3306 deines MySQL-V-Servers übers Internet funktioniert, dann lauscht dein MySQL auch öffentlich.

D.h. dein Problem liegt bei den Benutzerrechten. Das sagt ja auch: Access denied for user 'benutzer1'@'vserver.server.de'

PHP wirst du vermutlich lokal auf dem vServer laufen lassen. Ergo benutzt du hier localhost. Und das geht ja eigenbtlich immer.

Dass es an Java liegt bezeifle ich. Was mich aber noch wundert:
Du hast in deinem Java-Code oben "localhost" drin stehen. Da sollte doch die IP oder der Hostname des vServers drin stehen?

Oder läuft die Anwendung lokal auf dem vServer?

Hier mal mein Beispiel mit dem ich das immer gemacht habe. Benutzername und Passwort stehen hier "extra" und nicht in der "url":

Code:
String driver	= "com.mysql.jdbc.Driver";
		
String serverURL = "jdbc:mysql://localhost:3306/meinDbName?zeroDateTimeBehavior=convertToNull";
			
String user 	= "meinUser";	
String password 	= "meinPasswort";

// Select fitting database driver and connect:
Connection con = null;
		
try {
  Class.forName(driver);
  con = DriverManager.getConnection(serverURL, user, password);
} catch (Exception e) {
  e.printStackTrace();
}

Aber das hattest du ja schon so, oder?

Du könntest auch mal probieren mittels einem MySQL-Client zu deinem Server zu connecten. NaviCat oder http://www.heidisql.com/ sind hier recht behilflich...

- Alex
 

Eisscholle

Mitglied
Hi,

der Client ist .super! Lokal passt alles. Im web habe ich mich nicht mit einer Datenbank verbunden, sondern nur mit meinem Benutzer auf meinem Server und habe mir anzeigen lassen, auf welche DBs ich zugreifen darf. Und er zeigt mir nur die Datenbank "information_schema". Die war schon da, ist irgendetwas zu Mysql/phpmyadmin. Dort kann ich machen was ich will. Aber ich komme nicht auf meine eigene Datenbank. Nun wissen wir zwar woran es liegt aber wieso?

VG
 
T

tuxedo

Gast
Es reicht nicht einen Benutzer anzulegen. Du musst ihm auch rechte für eine bestimmte DB geben. Das kannst du mit phpmyadmin aber recht gut einstellen.

- Alex
 

Eisscholle

Mitglied
Hi, jetzt geht es komplett. Fragt aber bitte nicht wieso. Ich habe nix weiter geändert. Irgendwie geht es auch mit einem Passwort, was gar nicht in der Tabelle steht aber ggf. wird da noch was aktualisiert. Danke aber erstmal. Ich hoffe es geht dann weiterhin. *g*
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B SQLite Java Login + Datenbankverbindung Datenbankprogrammierung 4
H Datenbankverbindung zu MS Access Datenbankprogrammierung 4
Zrebna Wie mittels PL/SQL eine Datenbankverbindung blockieren? Datenbankprogrammierung 6
B Probleme mit Datenbankverbindung Datenbankprogrammierung 2
J Jar-Datei stellt keine Datenbankverbindung her Datenbankprogrammierung 3
B SQLite Frage zu SQLite Datenbankverbindung Datenbankprogrammierung 7
Danloc Informationen für Datenbankverbindung wo/wie speichern? Datenbankprogrammierung 11
T Problem mit Datenbankverbindung Datenbankprogrammierung 22
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
M Datenbankverbindung mit JSP herstellen Datenbankprogrammierung 19
D Keine Datenbankverbindung Datenbankprogrammierung 4
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
B Datenbankverbindung herstellen Datenbankprogrammierung 6
R Datenbankverbindung kann nicht hergestellt werden Datenbankprogrammierung 8
I SELECT bei Datenbankverbindung Datenbankprogrammierung 6
E Zuverlässige Datenbankverbindung Datenbankprogrammierung 4
M Datenbankverbindung Access Datenbankprogrammierung 3
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
Kenan89 Keine Datenbankverbindung möglich Datenbankprogrammierung 52
T Datenbankverbindung access funtioniert nicht Datenbankprogrammierung 21
K Problem mit Datenbankverbindung via Eclipse Datenbankprogrammierung 2
M Datenbankverbindung zu langsam beim Insert? Datenbankprogrammierung 6
E Datenbankverbindung mit Oracle JDBC und Eclipse Plugin Quantum db Datenbankprogrammierung 2
N Allg. Frage zur Datenbankverbindung Datenbankprogrammierung 2
C [MSSQL] Datenbankverbindung will nicht klappen... Datenbankprogrammierung 2
Hartigan Datenbankverbindung automatisch aktualisieren Datenbankprogrammierung 3
C MySQL Keine Datenbankverbindung Datenbankprogrammierung 6
D MySQL Datenbankverbindung scheitert Datenbankprogrammierung 9
A Datenbankverbindung mit einer Datenbank auf einem Webspace Datenbankprogrammierung 10
G Wie sieht eine Datenbankverbindung mit jndi aus? Datenbankprogrammierung 3
D Sicherheit für Datenbankverbindung Datenbankprogrammierung 19
MQue MySQL DatenbankVerbindung Datenbankprogrammierung 3
B Datenbankverbindung kann nicht aufgebaut werden. Datenbankprogrammierung 2
M Aus einem Applet eine Datenbankverbindung starten? Datenbankprogrammierung 26
G Datenbankverbindung mit Proxool aufrecht erhalten Datenbankprogrammierung 4
G iBatis Datenbankverbindung - DB-User übergeben Datenbankprogrammierung 4
J Warum ist es aufwendig eine Datenbankverbindung herzustellen Datenbankprogrammierung 3
E Datenbankverbindung verwalten Datenbankprogrammierung 6
J Fehler bei Oracle-Datenbankverbindung Datenbankprogrammierung 2
K Datenbankverbindung zu MySQL in XAMPP Datenbankprogrammierung 11
M Dauerhafte Datenbankverbindung - Timeouts? Datenbankprogrammierung 4
timomeinen [Hibernate] Datenbankverbindung testen Datenbankprogrammierung 11
M Datenbankverbindung bricht nach ca. 12 Stunden Verbindung ab Datenbankprogrammierung 3
K Wann schließt ihr die Datenbankverbindung? Datenbankprogrammierung 7
E Datenbankverbindung von BIRT Datenbankprogrammierung 3
S Datenbankverbindung auslagen Datenbankprogrammierung 3
8 MySQL Datenbankverbindung herstellen FAQ Datenbankprogrammierung 2
A Was passiert wenn eine Datenbankverbindung unterbricht Datenbankprogrammierung 7
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
P Reicht finally nicht um DB connections zu schließen in (altem) Java? Datenbankprogrammierung 4
A Java DB Server lässt sich nicht starten Datenbankprogrammierung 3
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
U SQL Server mit Java verbinden Datenbankprogrammierung 5
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Noobfrage: Konvertierung von SQL-Datentyp 'timestamp with time zone' in Java-Datentyp Datenbankprogrammierung 3
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
berserkerdq2 Was kann passieren, wenn ich in java einstelle, dass der Fremdschüssel ein Attribut ist, welches selber kein Primärschlüssel ist? Datenbankprogrammierung 4
berserkerdq2 Foreign key einstellen java Datenbankprogrammierung 4
nikgo Java SQL Ausgabe in Liste o.ä. abspeichern um mit dem Ergbnis "zu arbeiten"? Datenbankprogrammierung 5
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
S ODBC Treiber in Java Editor einbinden Datenbankprogrammierung 3
H Oracle Resize eines Images in Java und Rückgabe des Image als BLOB an die Oracle Datebank Datenbankprogrammierung 14
H Java Class zum komprimieren von Jpeg-Images zum Einbinden in Oracle DB - Bild als blob (in und out) Datenbankprogrammierung 23
V SQLite java.sql.SQLException: no such column: Datenbankprogrammierung 18
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
D Daten aus der Firebase-Echtzeitdatenbank abfragen und in Variablen speichern (JAVA) Datenbankprogrammierung 0
Slaylen Java List Suchen mit eigenem Generischen Datentyp Datenbankprogrammierung 10
N java sql abfrage bestimmer Datumszeitraum Datenbankprogrammierung 9
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15
P USER Management in SQL übergreifend auf JAVA Programm Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
N Java Abfrage über GUI, Daten hinzufügen Datenbankprogrammierung 54
N Java, sql, jar, JDBC-Treiber in Classpath Datenbankprogrammierung 8
N java SQL JAR - Probleme Datenbankprogrammierung 18
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
N SQL-Statement Java Variable in SQL DB einfügen Datenbankprogrammierung 1
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
T Java Spiel Daten speichern Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
L Mybatis Datenbankabfragen in Java Datenbankprogrammierung 1
H MariaDB-Zugriff mittels Java SE Datenbankprogrammierung 3
J Java fügt Datensätze ein aber diese werden nicht richtig abgefragt Datenbankprogrammierung 3
S Datenbank MySQL und Java Datenbankprogrammierung 8
S Beispiel-Blockchain + GUI mit Java erstellen Datenbankprogrammierung 0
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
Trèfle SQLite SQL-Java Änderungen ausgeben Datenbankprogrammierung 1
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
A MySQL Select und Insert in Java Datenbankprogrammierung 15
C Derby/JavaDB Auf Variable aus Link in java server page zugreifen Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
F MySQL Einfügen von Datensätzen über Java Datenbankprogrammierung 8
B CSV in Java einbinden und Rechnung Datenbankprogrammierung 7
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19

Ähnliche Java Themen

Neue Themen


Oben