Java-Zugriff auf MySQL-Datenbank

Status
Für weitere Antworten geschlossen.

landogardiner

Benutzer
Mitglied seit
06. Jun 2012
Beiträge
41
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich würde gerne aus dem lokalen Netz auf eine MariaDB MySQL-Datenbank zugreifen.

Hat jemand einen Tipp, wie ich eine Verbindung von Java (dbHost??, dbPort) herstellen kann?

Gruß
Frajo
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.166
Punkte für Reaktionen
63
Punkte
68
Da ist nichts besonderes. Das geht wie üblich mit dem Standard-MySQL JDBC-Treiber. dbHost ist die IP der Syno, dbPort ist auch Standard 3306. Google hat Unmengen Beispiele. Falls die Firewall aktiviert ist, muss der Port auf der Syno eingehend freigeschaltet werden.
 

landogardiner

Benutzer
Mitglied seit
06. Jun 2012
Beiträge
41
Punkte für Reaktionen
0
Punkte
0
Das Problem ist gelöst, hat mir aber einiges an Kopfzerbrechen bereitet:

Ich benutze eine Klasse DatabaseConnector, die die Verbindung zur Datenbank aufbaut. Neben dbhost und dbport muss ich noch den Benutzernamen und Passwort zum Zugriff auf die Datenbank angeben.
Der Benutzer benutzer1 ist bei phpMyAdmin angelegt, aber als Localhost. Das funktioniert dann bei einem Telnet-Zugriff auf die Synology wunderbar, weil der Benutzername durch @localhost ergänzt wird. Beim Zugriff von meinem Mac aus aber wird natürlich der Benutzername durch @my_Mac ergänzt und erhält keinen Zugriff.

Also habe ich bei phpMyAdmin einen neuen Benutzer benutzer2 angelegt, der von jedem Host aus ('%') Zugriff hat.
Dieser Benutzer ist sonst mit allen Rechten identisch zu dem zuerst angelegten, hat also Grant-Zugriff auf die Datenbank.

Hier funktioniert bereits die telnet-Anmeldung nicht: Dem benutzer2 wird bei telnet wieder @localhost angehängt, aber der Zugriff verweigert.

Das fand ich jetzt sehr verwirrend.

Spaßeshalber habe ich dann mal den Zugriff über mein Java-Programm probiert und siehe da: Es hat funktioniert!

Was muss ich mir merken? Der Benutzer benutzerl1@% erhält zwar von extern Zugriff, aber der Zugriff über localhost wird verweigert. Das verstehe ich zwar nicht, aber nun funktioniert der Java-Zugriff zumindest.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.166
Punkte für Reaktionen
63
Punkte
68
Der Mysql User für die Anmeldung an der Mysql-DB und der Synology User für die Anmeldung am Betriebssystem(telnet) sind sind völlig verschiedene und unabhängige Bereiche. Wenn man ein "grant all PRIVILEGES ON *.* to 'benutzer2'@'%'; " gefolgt von "flush privileges;" eingibt, sollte die Anmeldung mit "mysql -u benutzer2 -h <syno-ip> -w" möglich sein, wenn nicht ein andererer Eintrag dem entgegensteht.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!