Connect to MySQL Server Databases Remotely

Und alles was mit phpMyAdmin seine Verwandtschaft findet hat hier seinen Platz.

Connect to MySQL Server Databases Remotely

Postby Wolfgang » 29. October 2021 17:46

Guten Tag,

also, es soll zur entwicklungszwecken, eine Webapp auf einem XAMPP-Server (Desktop-PC), von einem Smartphone (Android) getestet werden. Die Verbindung funktioniert immerhin schon (http://<desktop-pc-ipv4-adresse>). Auch das Firefox-Remote-Debugging läuft.

Aber Datenbank-Abfragen funktionieren noch nicht. Eine Suche führt zu diesem Blog:

How to Connect to MySQL Server Databases Remotely
https://blog.devart.com/remote-connection-to-mysql-server.html

Leider funktioniert es nicht, aber es lies sich auch nicht 1/1 umsetzen. Damit meine ich genauer den MySQL Neustart. Den habe ich alternativ über das "XAMPP Control Panel" mit stopp und start gemacht. ABER vielleicht ist es nicht der Neustart den es braucht!? Den Neustart über die Shell, Dienste oder den Task-Manager konnte ich bisher leider nicht umsetzen. Wäre jetzt schade, wenn wirklich nur der Neustart auf diese spezielle weise nötig wäre. Jedenfalls ging es auch nach einem PC-Neustart nicht.

Es wäre wirklich sehr hilfreich, wenn man in ruhe lokal seine Webapp testen dürfte. Wenn noch irgendwelche Angaben fehlen, bitte einfach fragen.

Phpmyadmin-Startseite, Datenbank-Server:

Server: 127.0.0.1 via TCP/IP
Server-Typ: MariaDB
Server-Verbindung: SSL wird nicht verwendet Dokumentation
Server-Version: 10.4.17-MariaDB - mariadb.org binary distribution
Protokoll-Version: 10
Benutzer: root@localhost
Server-Zeichensatz: UTF-8 Unicode (utf8mb4)
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 29. October 2021 17:52

Wolfgang wrote:Aber Datenbank-Abfragen funktionieren noch nicht. Eine Suche führt zu diesem Blog:

How to Connect to MySQL Server Databases Remotely
https://blog.devart.com/remote-connecti ... erver.html

Was bedeutet "funktionieren noch nicht" genau? vollständige Fehlermeldungen wären hilfreich.
Versuchst du mit der Webapp die von XAMPP Apache ausgeliefert werden auf die XAMPP MariaDB zuzugreifen? Dann sind dad keine Remote zugriffe sondern lokale Zugriffe
Der Zugriff über phpmyadmin scheint ja schonmal zu finktionieren, was auch nichts anderes als eine Webapplication ist die auf die Datenbank zugreift.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 29. October 2021 18:35

Altrea wrote:Was bedeutet "funktionieren noch nicht" genau? vollständige Fehlermeldungen wären hilfreich.

Zu einer vorzeigbaren Fehlerbehandlung bin ich noch nicht gekommen. Das heist, wenn nötig, pack ich so was temporär in die Session. Aber es wird quasi ein FALSE, statt Ergebnis-Zeilen, mit einer Anfrage zurückgegeben.
Altrea wrote:Versuchst du mit der Webapp die von XAMPP Apache ausgeliefert werden auf die XAMPP MariaDB zuzugreifen?

Ja, die Webapp oder PHP-Seite macht zuanfang eine AJAX-Anfrage, die zum Fehler führt. Wird diese App vom Desktop-PC aufgerufen kommt kein Fehler bei der Datenbank-Abfrage.
Altrea wrote:Dann sind dad keine Remote zugriffe sondern lokale Zugriffe

So wie ichs verstanden hab, ist es wohl ein Remote-Zugriff. Und die sind aus Sicherheitsgründen nicht ohne Voreinstellungen möglich. Auch ein Aufruf von "http://<desktop-pc-ipv4-adresse>/phpmyadmin" geht nicht, es kommt "Forbidden ..." .
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 29. October 2021 19:08

Okay, also AJAX funktioniert folgendermaßen:
Ein in der Regel per Webaufruf an den Client ausgeliefertes JavaScript triggert durch einen Auslöser (Mausclick, Zeitgesteuert, etc.) ein PHP Script (meist ein API), das zum Beispiel Datenbankzugriffe auslösen kann und als Ergebnis ein JSON oder XML zurückliefert. Das Ergebnis wiederum wird wieder vom Clientseitigen JavaScript interpretiert, zum Beispiel das HTML DOM manipuliert).
Der wichtige Teil ist hier, dass nicht das clientseitige JavaScript direkt auf die Datenbank zugreift, sondern das API, also das serverseitige PHP Script. Damit ist das kein Remote Zugriff auf die Datenbank mehr sondern ein lokaler Zugriff.

Die Fehlermeldung die bei phpmyadmin Remote Zugriffen erscheint ist gewollt in XAMPP zu konfiguriert, da phpmyadmin ein sensibles Tool ist, die XAMPP onfiguration bekannt ist und damit unbeabsichtigte Admin Abfragen aus der Ferne verhindert werden sollen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 29. October 2021 20:42

Altrea wrote:Der wichtige Teil ist hier, dass nicht das clientseitige JavaScript direkt auf die Datenbank zugreift, sondern das API, also das serverseitige PHP Script. Damit ist das kein Remote Zugriff auf die Datenbank mehr sondern ein lokaler Zugriff.

Ja, das finde ich logisch. Ich habe es wohl auch eher für einen Remote-Zugriff gehalten, weil es ein Grund wäre, warum von der Datenbank nichts ausgeliefert wird.
Altrea wrote:Die Fehlermeldung die bei phpmyadmin Remote Zugriffen erscheint ist gewollt in XAMPP zu konfiguriert ...

Habe ich das richtig verstanden, phpmyadmin kann nicht vom Smartphone aus aufgerufen werden ... bei dem kleinen Display eh nicht so schlimm.

Also, aus irgendeinem Grund bekommt man keine Erfogreichen Datenbank-Abfragen, wenn die Seite mit dem Smartphone aufgerufen wird. Aber das muss ja möglich sein um es lokal testen zu können.
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 29. October 2021 21:25

Wolfgang wrote:Habe ich das richtig verstanden, phpmyadmin kann nicht vom Smartphone aus aufgerufen werden

Jeder Zugriffsversuch auf phpMyAdmin der nicht vom XAMPP Server selbst erfolgt wird mit einem HTTP Status 403 "forbidden" quittiert.
Das kann man aber in der Apache konfiguration ändern. Suche einfach mal nach dem Wort "phpmyadmin" in den Apache Konfigurationsdateien, dort in der Nähe findest du sicher einen Block der die Zugriffsregeln für den phpmyadmin Ordner reglementiert (die Zeile "Require local").

Das erklärt nur leider dein Problem nicht.

Wolfgang wrote:Also, aus irgendeinem Grund bekommt man keine Erfogreichen Datenbank-Abfragen, wenn die Seite mit dem Smartphone aufgerufen wird. Aber das muss ja möglich sein um es lokal testen zu können.

Ohne das Script und deine Umgebung im Detail zu kennen (idealerweise dass ein Helfer das selbst lokal nachstellen kann) ist es schwer bis unmöglich ein solches Problem aus der Ferne zu analysieren. Irgendeinen Unterschied muss es geben, zwischen den lokalen Aufrufen und den Aufrufen vom Handy.

Wie ist das Verhalten, wenn du dasselbe mit einem zweiten PC probierst?
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 29. October 2021 21:45

Ich habe hier jetzt eine Fehlermeldung, indem ich versuche über eine andere Seite ohne AJAX eine Verbindung herzustellen.

Warning: ... Access denied for user "@'localhost' (using password: NO) in ...
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 29. October 2021 22:21

Warning: ... Access denied for user "@'localhost' (using password: NO)

Diese Fehlermeldung hilft mehr, als man ihr auf dem ersten Blick ansieht.

Man kann zum einen sehen, dass der Zugriffsversuch vom Host localhost kommt.
Weiterhin sieht man, dass kein Benutzername angegeben ist (ein sogenannter anonymer Benutzer)
Man sieht, dass kein Passwort verwendet wurde.
In dieser Kombination ist in MariaDB kein Zugriff auf die von dir verwendete Datenbank definiert.

Nun wirst du aller Voraussicht nach nicht selbst auf die Idee gekommen sein, keinen Benutzernamen anzugeben und das ist mit Sicherheit so auch nicht in deinem Script hinterlegt.
Das liegt daran, dass MariaDB versucht, bei mehr als einem passenden Benutzerkonto für einen Zugriff den wahrscheinlichsten/konkretesten auszuwählen. Insgesamt gibt es 8 Prioritätsstufen, um es zu vereinfachen erkläre ich es an Hand der 4 wichtigsten.

Ein Benutzername kann entweder konkret oder anonym sein, dasselbe gilt für den Hostanteil.
Für MariaDB ist der Host konkreter als der Benutzer, daraus ergibt sich folgende Prioritäten:

'root'@'localhost' => konkreter Benutzer und konkreter Host
''@'localhost' => anonymer Benutzer und konkreter Host
'root'@% => konkreter Benutzer, anonymer Host
''@% => anonymer Benutzer und anonymer Host

In deinem Fall wurde ein Benutzer der zweiten Kategorie gewählt, weil du wahrscheinlich einen Benutzer mit anonymen Hostanteil (dritte Kategorie) verwenden wolltest. Die Grundinstallation von XAMPP enthält aber einen sehr eingeschränkten Benutzer der zweiten Kategorie (wird in XAMPP als Any@localhost angezeigt.

Du hast nun zwei Möglichkeiten: Entweder bearbeitest du deinen Benutzer dahingehend, dass der Hostanteil localhost entspricht (wie gesagt brauchst du bei AJAX keinen Remote Benutzer). Oder du löschst den vordefinierten anonymen Benutzer der mit XAMPP zu Testzwecken mitgeliefert wurde.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 29. October 2021 23:59

Altrea wrote:Oder du löschst den vordefinierten anonymen Benutzer der mit XAMPP zu Testzwecken mitgeliefert wurde.


Das wollte ich jetzt machen, aber ... ich habe es jetzt irgendwie verstellt. Also ich habe hier mit Hilfe von https://www.mysqltutorial.org zum Test den root@localhost gelöscht und wieder erstellt. Aber jetzt erhalte ich beim Aufruf der Testseite AUCH mit dem Desktop-PC eine Fehler Meldung: ... Access denied for user 'root'@'localhost' to database ... Ich habe auch schon versucht die Privilegien wieder herzustellen, hat aber nicht funktioniert.

Also wie setze ich den root wieder so zurück wie er wahr und lösche dann den vordefinierten Benutzer?
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 30. October 2021 09:24

Wolfgang wrote:ich habe es jetzt irgendwie verstellt. Also ich habe hier mit Hilfe von https://www.mysqltutorial.org zum Test den root@localhost gelöscht und wieder erstellt.

Das ist nicht das, was ich geschrieben hatte. Es ging nie um den User root@localhost, sondern immer um den Benutzer Any@localhost
Den Benutzer root@localhost zu löschen ist gleichbedeutend mit Tür von außen abschließen und den Schlüssel in den Gulli schmeißen.

Die Wiederherstellung ist daher nicht so einfach, denn es gibt keinen Benutzer, der die Berechtigung hat die Berechtigungen wiederherzustellen.
Das einfachste wäre tatsächlich XAMPP nochmal komplett zu deinstallieren und nochmal von neu anzufangen (Backups nicht vergessen, falls du Dateien / Webanwendungen hast die du behalten und nicht aus anderen Quellen wiederherstellen kannst)
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 30. October 2021 11:21

Ich würde Xampp neu installieren, aber sehe jetzt leider eine Datenbank in phpmyadmin nicht mehr, von der ich noch ein backup machen will. Das müsste mit einem Lösungsversuch zusammenhängen, der eigendlich sehr vielversprechend wirkte.

Diese Lösung:
https://dba.stackexchange.com/questions ... to-restore

Mit dem hinzufügen von "skip-grant-tables" in die my.ini, müsste es zutun haben.

Ich habe die Zeile entfernt, keine Änderung. Dann den Rechner neu gestartet, aber immernoch keine selbst angelegten Datenbanken in phpmyadmin zu sehen.

Das hätte ich jetzt nicht erwartet, kann man da noch was retten?
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 30. October 2021 18:11

Wolfgang wrote:Ich würde Xampp neu installieren, aber sehe jetzt leider eine Datenbank in phpmyadmin nicht mehr, von der ich noch ein backup machen will. Das müsste mit einem Lösungsversuch zusammenhängen, der eigendlich sehr vielversprechend wirkte.

Diese Lösung:
https://dba.stackexchange.com/questions ... to-restore

Mit dem hinzufügen von "skip-grant-tables" in die my.ini, müsste es zutun haben.

Ja, das ist möglich. Du kannst die Zeile skip-grant-tables (unter Linux) in der Datei /opt/lampp/etc/my.cnf hinzufügen. Sie muss sich im Block [mysqld] befinden.
Danach muss MariaDB (neu-)gestartet werden.

Die Zeile bewirkt, dass man sich an MariaDB mit jedem Benutzer ohne Passwort und mit allen Rechten anmelden kann. Das sollte ausreichen, dass du zumindest einen Export der Datenbank ziehen kannst.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 31. October 2021 14:23

Altrea wrote:Sie muss sich im Block [mysqld] befinden.


Danke, so war dann ein Backup möglich. XAMPP ist jetzt neu installiert. Es läuft übrigens auf Windows.

Also, so wie ichs verstanden hab, müsste ich jetzt einen User hinzufügen oder löschen. Das sind die User + Host :

User Host
root 127.0.0.1
root ::1
pma localhost
root localhost

Die Fehlermeldung beim Aufruf vom Smartphone ist immernoch: Warning: ... Access denied for user "@'localhost' (using password: NO)

Müsste man nich so einen User anlegen!? : ''@localhost
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Wolfgang » 31. October 2021 17:01

Habe den Benutzer ''@localhost jetzt einfach erstellt, und ihm alle Privilegien gegeben. Die Fehlermeldung ist jetzt weg, aber es kommt bei der Datenbank-Abfrage nur FALSE zurück. Mit dem Desktop-PC gehts.

Liegt es vielleicht an Port-Einstellungen, aber wie müssten die sein, und wo?
Wolfgang
 
Posts: 18
Joined: 30. December 2015 12:09
Operating System: Xubuntu

Re: Connect to MySQL Server Databases Remotely

Postby Altrea » 31. October 2021 21:49

Dass du Windows benutzt wird leider nirgens ersichtlich. In deinem Profil steht Xubuntu, darauf habe ich mich daher bezogen.
Es ist auch nicht klar, welche XAMPP Version du genau verwendest. MariaDB 10.4.17 ist in mehreren XAMPP Versionen zwischen Januar und Februar 2021 enthalten.

Gehen wir mal davon aus, dass du XAMPP 7.4.15 einsetzt, so gibt es dort folgende vorgefertigte Benutzer:
Image

Der oberste von diesen Benutzern stellt hierbei das Problem dar, welches ich zuvor geschildert habe.

Einen Benutzer ''@localhost zu erstellen ist nicht der richtige Weg. Anonyme Benutzer verwendet man generell nicht für Webanwendungen. DIe taugen höchstens um rudimentär die Verfügbarkeit von MariaDB zu testen. Deshalb hat der vordefinierte anonyme Benutzer auch nur Berechtigungen auf die test-Datenbank.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11935
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Next

Return to phpMyAdmin

Who is online

Users browsing this forum: No registered users and 43 guests