Connect to MySQL Server Databases Remotely

Kristian2

Benutzer
Beiträge
7
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. Soll heisen, die Webapp oder PHP-Seite macht zuanfang eine AJAX-Anfrage, die zum Fehler führt. Es wird quasi ein FALSE, statt Ergebnis-Zeilen, mit einer Anfrage zurückgegeben. Wird diese App vom Desktop-PC aufgerufen kommt kein Fehler bei der Datenbank-Abfrage.

Eine Suche führt zu diesem Blog:

How to Connect to MySQL Server Databases Remotely
How to Allow Remote Connection to MySQL Server Database

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)
 
Werbung:

akretschmer

Datenbank-Guru
Beiträge
9.612
viel zu wenig Informationen, über das was Du da konfiguriert hast und versucht, über Fehlermeldungen etc. Aber vermutlich verwendest Du 127.0.0.1 als Adresse und das wäre dann auch schon der Fehler.
 

Kristian2

Benutzer
Beiträge
7
viel zu wenig Informationen, über das was Du da konfiguriert hast und versucht, über Fehlermeldungen etc.

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 ...

vermutlich verwendest Du 127.0.0.1 als Adresse

Ich weis leider nicht, was du genau meinst. Also im Smartphone-Browser geb ich die IPv4-Adresse des PC ein und komm so direkt zur "Index of localhost".
 

Kampfgummibaerlie

Datenbank-Guru
Beiträge
572
127.0.0.1 ist das selbe Gerät, von welchem du dich aus verbinden willst. (wenn du dich selbst anrufst, rufst du, von der Sicht aus, dich selbst an)
der user als "@localhost" kommt mir auch etwas seltsam vor.... (gibt es da nichts wie "deinname" oder so?)
das password: NO kann sein, ist aber, falls dem so ist, sehr unsicher....

Der Index of Localhost bedeutet, du hast vermutlich einen Webserver auf deinem Gerät installiert, und greifst auf die Seite zu, die das Gerät hostet.

mehr Details über die Seite bitte, dann könnte man evtl. einfacher weiterhelfen...
 

dabadepdu

Datenbank-Guru
Beiträge
986
Es wäre wirklich sehr hilfreich, wenn man in ruhe lokal seine Webapp testen dürfte.
Irgendwas passt nicht zusammen in Deinen Angaben. Was ist "lokal"?
- Dein Arbeitsplatzrechner?
- Dein Handy?
- Dein Server?

Der Link oben behandelt die Einrichtung von mySQL auf System A und PHP auf System B. Also nichts lokales.
Viele Tutorials sind so angelegt, dass alles auf einem Rechner, dem Arbeitsplatz PC läuft, XAMPP ist mehr oder weniger genau dafür da.
Die IP Adresse 127.0.0.1 gilt für alle Netzwerkrechner der Welt, diese Adresse hat jedes System, es ist der Netzwerkzugriff auf sich selbst. Solange PHP und mySQL gemeinsam über XAMPP gestartet werden, brauchst Du kein Remote Connection Setup. Der Start der beiden Systeme über XAMPP ist auch vollkommen ok, da musst Du nichts programmieren. Anders sieht es aus, wenn mySQL und PHP auf unterschiedlichen Systemen laufen.
 

Kristian2

Benutzer
Beiträge
7
Also da gab es wohl ein Missverständnis. Ich habe es auch eher für einen Remote-Zugriff gehalten, weil es ein Grund wäre, warum von der Datenbank nichts ausgeliefert wird. Die Fehlermeldung: Warning: ... Access denied for user "@'localhost' (using password: NO) in ... kann man auch so verstehen, das die Anfrage von localhost kommen muss.

Ein Lösungsweg soll anscheinend sein, den Benutzer Any@localhost zu löschen. Bei ein paar Tests dazu, habe ich aber leider den root@localhost gelöscht. Nach dem ich den wieder angelegt habe, hat der aber nicht mehr die Selben Privilegien wie zuanfang. So das keine Abfragen mehr gehen. Also habe ich gesucht wie ich die Privilegien wieder herstellen kann, und habe diese Seite gefunden.

Deleted MySQL "root" user (using phpMyAdmin)...how to restore?
Deleted MySQL "root" user (using phpMyAdmin)...how to restore?

Dort steht, das in die my.ini ein "skip-grant-tables" angehängt werden soll, und dann quasi der root mit einem insert/update wieder hergestelt werden kann. Hat leider nicht funktioniert.

Also wollte ich als nächstes XAMPP neu installieren, weil das am schnellsten gehen soll. Davor wollte ich noch eine Datenbank Sichern, und dabei ist mir erst aufgefallen, das durch "skip-grant-tables" in phpmyadmin die Datenbanken nicht mehr aufgelistet werden. Also habe ich die Zeile aus der my.ini entfernt, keine Änderungen. Dann den Rechner neu gestartet, aber immernoch keine selbst angelegten Datenbanken in phpmyadmin zu sehen.

Das hätte ich jetzt nicht erwartet. Wie komm ich wieder an die Datenbanken, um die zu sichern und XAMPP neu zu installieren?
 

dabadepdu

Datenbank-Guru
Beiträge
986
Das ist jetzt alles irgendwie etwas vermasselt. Sicher sind die Daten noch da, nur Du siehst sie nicht / darfst nicht.
Deine Angaben sind leider nicht besonders tauglich für eine Unterstützung.
Zuallerst:
nicht mehr da, geht nicht, keine Abfrage geht mehr
erlauben keine Rückschlüsse auf die Ursache, Du müsstest Dir schon die Mühe machen, die Systemantwort, also Fehlermeldung, Ergebnismenge, was auch immer zurück kommt hier zu posten. Niemand kann hellsehen.

Dann gibt es auch sowas wie Log Files. Darin protokollieren Server aller Art, was gerade passiert oder auch nicht, was schief geht und falsch läuft.

Zuletzt: Wenn Du eh kein DB Zugriff hattest, kann der Zugriff auf die Daten ja nicht so dramatisch sein, wo sollten welche herkommen?
Also kannst Du alles löschen und neu installieren.
 

kira12

Benutzer
Beiträge
9
Hallo Christian,

dein Fehler liegt im user@localhost. Wenn du remote auf die Datenbank zugreifen möchtest brauchst du rechte für user@remote. Nur wenn die Zugriffe auf die Datenbank vom selben Rechner kommen wo die Datenbank läuft reicht dir user@localhost.

Gruß ré
 

Kristian2

Benutzer
Beiträge
7
Konnte jetzt die Datenbanken in phpmyadmin wieder anzeigen, indem ich "skip-grant-tables" in den [mysqld]-Block der my.ini gepackt habe. Der root-user wahr aber nicht wieder herzustellen, so das XAMPP jetzt neu installiert ist.

So wie ichs verstanden hab, müsste ich jetzt einen User ändern oder löschen, um mit dem Smartphone Datenbank-Abfregen machen zu können.

Das sind die User + Host :

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

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?
 

BerndB

Datenbank-Guru
Beiträge
320
Also, um ein wenig Klarheit ins das Ganze zu bringen:

Also der Eintrag user@localhost besagt das sich der User "user" NUR vom Rechner LOCALHOST einzuloggen.

Hilfe:

a) Lege einen neuen User an user@ip-vom-smartphone (falls die fest ist)
b) Lege einen neuen User an user@192.168.1.1/16 Damit kann man sich von IP 192.168.1.1 bis 192.168.255.255
4) Ändere den user user@localhost zu user@% damit ist die DB

Falls es doch noch Probleme gibt kann es sein das die
bind-address im ini file nicht oder falsch gesetzt wurde. Weiterhin kann die Firewall noch blocken,
dies ist jedoch bei dir nicht der Fall da du ja schon eine Meldung vom DB-Server bekommst.

Gruß

Bernd
 

Kristian2

Benutzer
Beiträge
7
Es geht leider noch nicht. Das sind jetzt die user + host :

Code:
User     Host     
             %
root     %
user     %
root     127.0.0.1
root     ::1
             localhost
pma     localhost


Für die neuen User hab ich auch die Privilegien geändert mit
Code:
GRANT ALL ON *.* TO <USER>@<HOST>

Dann noch die bind-adresse
Code:
 bind-address="0.0.0.0"

Und mysql über XAMPP Control Panel gestoppt/gestartet, aber es geht nicht.

Kann es sein, das für die Anwendung dieser Änderungen, ein stopp/start nicht reicht? Also ich seh gerade leider keinen Weg, wie das endlich mal funktioniert.
 

BerndB

Datenbank-Guru
Beiträge
320
du kannst mich gerne anrufen, dann bekommen wir das schon hin und schreiben die Lösung danach ins forum

02163 9879851

gruß Bernd
 
Werbung:
Oben