Auf MySql Datenbank zugreifen funktioniert nicht

Ich habe mir eine MySql Datenbank erstellt mit MySql Workbench :
1677318882124.png
und möchte jetzt eigentlich auf diese zugreifen mit Hilfe meines Java Prgramms, allerdings funktioniert das nicht. Hier einmal mein Quellcode:

Java:
    public void connect(){
        final String url = "jdbc:mysql://localhost:3307/";
        String user = "root";
        String password = "";

        try {
            Connection con = DriverManager.getConnection(url, user, password);
            Log.i("Connection: ", "connected");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

Hat jemand eine Idee wie ich das lösen kann? Vielen Dank : )
 

KonradN

Super-Moderator
Mitarbeiter
Was bekommst Du denn für einen Fehler?
Hast Du den root User ohne Passwort?

Und mal ganz trivial nachgefragt:
Und ist es ein normales Java Programm, welches Du auf dem gleichen Rechner laufen lässt, wie die Datenbank? Oder ist es eine Android App, die dann natürlich auf einem Emulator oder Android Device läuft?
 

KonradN

Super-Moderator
Mitarbeiter
Also auch auf Grund des anderen Threads von Dir:

Wenn Du von einem anderen Gerät (und das wäre dann ein Android Device - egal ob im Emulator oder auf dem Smartphone) aus auf die Datenbank zugreifen willst, dann ist das natürlich nicht localhost. localhost steht immer für das eigentliche Gerät.

Du musst statt localhost also den Rechner angeben, auf dem es läuft. Wenn Du eine Firtz Box hast, dann ist das meist etwas wie pcname.fritz.box. Oder Du schaust in einer Eingabeaufforderung mittels ipconfig nach der IP Adresse - das ist dann sowas wie 192.168.x.x oder 10.x.x.x. Das kannst Du dann statt localhost eintragen.

Dann ist aber noch wichtig, dass Geräte per WLAN diesen Zugriff haben. In machen Routern kann man einstellen, ob z.B. WLAN Geräte untereinander kommunizieren dürfen oder nicht (Falls der Rechner auch per WLAN angebungen ist) und das Gerät muss im Netz sein (also z.B. nicht mit dem Gästenetz verbunden sein).

Und da es sonst ja zu einfach wäre:
In der Datenbank mysql sind User nicht nur per username / passwort identifiziert sondern auch über den Rechner, von dem sie sich verbinden. So ist es üblich, dass der root User nur für localhost den Eintrag hat. Ein Zugriff von einem anderen System aus, ist also nicht möglich. Hier wäre entweder % statt localhost einzutragen (das wäre das wildcard Zeichen für beliebige Systeme) was aber bedenklich ist: Jeder kann dann als root zugreifen - zumal Du nicht einmal ein Passwort gesetzt hast (oder war das nur im Post entfernt?).
Besser wäre es, einen User zu erstellen, der nur die notwendigen Rechte hat, also nur Zugriff auf die Datenbank, die die Daten enthält und dort nur die Rechte, die wirklich benötigt werden. Also nur Lese- und Schreibrechte, wo diese benötigt werden. Das reduziert die möglichen Angriffe.

Aber generell: Das ist keine gute Idee! Du veröffentlichst eine app mit diesen Daten. Ich selbst hole mir die app und schaue mir im einfachsten Fall die apk an und finde die Zugangsdaten. Damit habe ich dann vollen Zugriff auf die Datenbank - unabhängig, was die App mir anzeigt. Wenn da also Anmeldeinformationen hinterlegt sind, dann habe ich diese. Wenn da personenbezogene Informationen sind wie Emails und so: Dann habe ich die. Wenn Du das apk irgendwie verschlüsselst und einen obfuskator nutzt und und und: Dann tut mir das nicht weh. Ich sehe nicht den Quellcode mit den Daten so einfach, aber ich kann mir im Debugger anschauen, wann denn der Connect Aufruf kommt. Und beim connect Aufruf werden diese Informationen übergeben und die kann ich direkt sehen. Es brauchte jetzt etwas mehr Wissen, aber es ist nichts wirklich schweres!

==> Das sind also ganz schlechte Ideen!

Üblich ist, dass eine Datenbank nicht über das Netz erreichbar ist. (Alleine schon um einfache denial of service Angriffe zu vermeiden!) Statt dessen wird die Datenbank hinter einem REST Service versteckt. Auf den REST Service kann man zwar auch (d)DoS Angriffe fahren, aber da gibt es dann die üblichen Abwehrmöglichkeiten. Das kann man z.B. gut skallieren so dass man nicht einen REST Service hat sondern zur Not Hunderte. Und da gibt es dann auch anbieter, die darauf spezialisiert sind und da fertige Lösungen preiswert anbieten (Da einfach den Provider Deiner Wahl ansprechen. Oder zu einem Dienstleister wie Cloudflare gehen und da fragen, falls der eigene Provider da nicht weiter helfen kann).

Daher wäre die Idee, dass Du diese Ebenen hast:

Applikation
REST Webservice
Datenbank

Die Applikation greift auf den REST Service zu. Der User meldet sich da dann an und kann dann gewisse Dinge beim REST Webservice machen. Aber eben nur das. Der Nutzer kann dann die App so durchleuchten wie er will: Er bekommt nur das mit. Er kann sich dann mit den Anmeldedaten direkt am REST Webservice anmelden und kann da dann direkt auch die Zugriffe machen. Aber eben nur das, was der Service für diesen User erlaubt.
Der REST Webservice hat die Verbindung zur Datenbank und kann da natürlich alles machen (was der User, der da hinterlegt wurde, zulässt). Aber die Sourcen sind nur auf dem Server. Da kommt ein anderer nicht einfach so dran. Du hast das ja nie aus der Hand gegeben.

Ich hoffe, ich konnte da etwas erläutern und erhellen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Auf MySQL Datenbank mit Java zugreifen Datenbankprogrammierung 4
E Wie auf eine MySql Datenbank zugreifen Datenbankprogrammierung 25
M MySQL Datenbank in Array Datenbankprogrammierung 2
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
S Datenbank MySQL und Java Datenbankprogrammierung 8
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
N MySQL Datenbank lokal Datenbankprogrammierung 3
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
M In MySql Datenbank schreiben Datenbankprogrammierung 6
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
S Verbindungsaufbau zu MySql Datenbank nicht möglich Datenbankprogrammierung 3
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
MiMa Mehrfacheinträge in MySQL Datenbank Datenbankprogrammierung 5
M Mysql-Datenbank connecten (Eigenes Framework) Datenbankprogrammierung 10
O Viele Verbindungen-Exception bei insert Daten zur MySQL-Datenbank Datenbankprogrammierung 2
E Zugriff auf MySQL-Datenbank Datenbankprogrammierung 4
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
T MySQL Kann Verbindung zur MySQL Datenbank nicht herstellen. Datenbankprogrammierung 4
A MySQL MySQL Datenbank einbinden in GWT Datenbankprogrammierung 6
J Zugriff auf MySQL-Datenbank Datenbankprogrammierung 5
S MySQL Koreanische Schriftzeichen in MySQL Datenbank schreiben Datenbankprogrammierung 11
M Datenbank (MySQL) auslesen Datenbankprogrammierung 3
S Java Connection to MySQL Datenbank FunPic Datenbankprogrammierung 4
G Suchfunktion mit Java in Mysql Datenbank Datenbankprogrammierung 7
M MySQL Datenbank mit Java routen Datenbankprogrammierung 2
F Connection refused: connect Bei Verbindungsherstellung zu MySQL Datenbank Datenbankprogrammierung 3
vandread mySQL Datenbank erstellen? Datenbankprogrammierung 4
P Daten aus MySql Datenbank lesen??? Datenbankprogrammierung 6
M Ausgabe in Tabelle der MySQL-Datenbank mit Java Datenbankprogrammierung 4
G MySQL: Anfragen von Bits aus der Datenbank Datenbankprogrammierung 3
R Entfernte MySQL Datenbank für lokale Swing-App Datenbankprogrammierung 8
C MySQL Datenbank starten Datenbankprogrammierung 4
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10
C MySQL Datenbank mit Hibernate befüllen Datenbankprogrammierung 5
W Auslesen von Tabellen einer MYSql Datenbank Datenbankprogrammierung 25
A Java-Applet -> MySQL Datenbank Datenbankprogrammierung 7
M Mysql datenbank auslesen und mittels servlet wiedergeben Datenbankprogrammierung 3
N Problem mit Verbindung zu externer MySQL Datenbank Datenbankprogrammierung 8
G SSH Verbindung zur (MySQL-)Datenbank Datenbankprogrammierung 6
M Sicherheit bei Applet auf MySQL Datenbank Datenbankprogrammierung 4
L Bilder in MySQL-Datenbank via Java verwalten Datenbankprogrammierung 5
B Eintrag in der MySQL Datenbank eintragen? Datenbankprogrammierung 2
M MySQL-Datenbank über Java ansprechen Datenbankprogrammierung 5
Z Auslesen aus einer mySQL Datenbank Datenbankprogrammierung 4
M MySQL Datenbank einbinden - Riesenproblem Datenbankprogrammierung 6
R Nach String in MySQL datenbank suchen Datenbankprogrammierung 7
M Mit Java Data Objects Daten in einer MySQL-Datenbank manipul Datenbankprogrammierung 9
C Verbindung zur MySQL Datenbank scheiter. "Bad handshake Datenbankprogrammierung 2
D mysql Standalone Datenbank Datenbankprogrammierung 6
R Wie ist URL zu meiner MySQL Datenbank? Name?Pwd? Datenbankprogrammierung 2
K keine Verbindung zu mysql Datenbank Datenbankprogrammierung 11
B double Array in MySQL Datenbank speichern/laden Datenbankprogrammierung 12
D Kann nicht auf MySQL Datenbank Zugriff Datenbankprogrammierung 9
F Abfrage eines DB Feldes aus einer mySQL Datenbank Datenbankprogrammierung 2
L Verbindung zu MySQL-Datenbank Datenbankprogrammierung 2
S Daten aus einer MySQL-Datenbank auslesen Datenbankprogrammierung 7
S Problem bei Eingabe von Dateipfad in eine MySQL-Datenbank Datenbankprogrammierung 4
welterde Objekte in Mysql Datenbank speichern Datenbankprogrammierung 3
R Zugriff auf MySQL-Datenbank im Internet Datenbankprogrammierung 13
X Vectoren in mySQL-Datenbank speichern und auslesen Datenbankprogrammierung 8
F Problem mit MySQL-Datenbank und Java-Applet Datenbankprogrammierung 2
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben