MySQL Datenbank von extern erreichen

Status
Für weitere Antworten geschlossen.

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich habe folgendes vor: Ich möchte ein Programm zum Einsatz bringen welches die von mir eingegeben Daten auf eine MySQL Datenbank speichert. Mit diesem Programm ist es möglich auch von anderen Orten Daten zu ändern und einzusehen.
Dazu ist es allerding erforderlich die Datenbank über das Internet verfügbar zu machen. Momentan nutze ich nor localhost. Kann mir jemand sagen was ich wie einstellen muss damit mein Vorhaben gelingt?

Ich nutze eine DS207 und eine FritzBox 7170.

Gruß Michael
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Du musst im Router den Port 3306 an die DS weiterleiten und einen mySQL-Benutzer erstellen, der die Berechtigung hat, von außen auf die entsprechende Tabelle zuzugreifen.
 

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Port ist freigegeben und an die DS weitergeleitet und einen Benutzer hab ich auch (hoffentlich richtig) angelegt.

Gruß Michael
 

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo,

hab nun den Hinweis erhalten das ich in /etc die my.cnf anpassen muss und dort den Zugriff von extern freigeben muss. Hab nun mit WinSCP versucht die Datei runterzuladen um sie anzupassen. Das gelingt mir allerdings nicht, es kommt immer folgende Warnmeldung
SCP konnte für den Start der Übertragung nicht ausgeführt werden. Bitte stellen Sie sicher, dass SCP auf dem Server installiert ist und die $PFAD- Variable den Pfad zu SCP enthält. Anstatt SCP können Sie auch SFTP probieren.
Befehl gescheitert mit Beendigungscode 127.

Jetzt bin ich wieder kein Stück weiter. Könnt ihr mir sagen was fehlt bzw. was ich falsch mache?

Gruß Michael
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.192
Punkte für Reaktionen
429
Punkte
393

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Jetzt bin ich wieder kein Stück weiter. Könnt ihr mir sagen was fehlt bzw. was ich falsch mache?

Gruß Michael
Entweder der Tip von goetz oder einfach die Datei direkt auf der Shell der DS z.B. mit vi bearbeiten :)
 

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Der Tip von Götz war schon gut und ich bin schon ein Stück weiter. Um die DB von extern erreichbar zu machen soll man im Verzeichniss /etc/init.d/mysql die my.cnf ändern. Soweit so gut aber bei mir gibt es das ganze nur bis init.d, also es fehlt quasi der Ordner mysql und die dazugehörige my.cnf. Gibt es vielleicht noch ne andere Möglichkeit an die Datei zu kommen bzw. liegt die evtl. auf der DS an einer anderen Stelle?

Gruß Michael
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Hä????

Der einzige richtige und völlig unkomplizierte Weg hat Trolli in Post 2 beschrieben.

Wenn du das richtig machst kannst von überall her zufgreifen.

Also entweder hast Port 3306 nicht weitergeleitet oder dem Benutzer nicht weltweite Berechtigung gegeben.

Weder IPKG noch sonstiger Firlefanz muss installiert werden.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Auf der DS wird normalerweise der eingebaute MySQL-Server nicht (!) über eine my.cnf konfiguriert, sondern direkt per Aufrufoptionen in den Start-Skripten.

Itari
 

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Hallo,

was heist das jetzt genau?
Noch ne Frage, ich habe im Router (FritzBox 7170) den Port 3306 freigegeben. Dort steht: "Bezeichnung" bla bla (da hab ich eine willkürliche Bezeichnung gewählt. Dann kommt "Protokoll" dor habe ich TCP und UDP gewählt. Dann kommt "Port" dort habe ich 3306 gewählt. Dann kommt "an Computer" dort hab ich die DS ausgewählt und als letztes kommt "an Port" dort hab ich wieder 3306 eingetragen. Ist das soweit richtig oder liegt womöglich dort der Fehler?

Gruß Michael
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Das ist soweit richtig, aber du hast bestimmt deinem mysql Benutzer nicht die richtigen Rechte erteilt (muss man zB mit phpmyadmin auf der DS machen.
 

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Ich denke jedenfalls das der Benutzer die notwendigen Rechte hat die er braucht. Zur Sicherheit hab ich mal eine Bild angehängt wie die momentanen Einstellungen sind.

Jetz kommt immer folgende Meldung:
SQL Error: Host ''XXXXXXXX.dip.t-dialin.net'' is not allowed to connect to this MySQL server

Ich hab das Gefühl das der dyndns Name nicht korrekt aufgelöst wird. Aber ich kann mich da auch täuschen.
 

Anhänge

  • pma1.jpg
    pma1.jpg
    80,1 KB · Aufrufe: 104

Langi

Benutzer
Mitglied seit
10. Mai 2010
Beiträge
7
Punkte für Reaktionen
0
Punkte
0
Ich hab nochmalig was probiert. Ich hab einige kleine Änderungen an der confic.inc vorgenommen und siehe da es passiert was. Es wird durch das Programm eine neue Datenbank angelegt und dann kommt wieder eine Fehlermeldung die folgendermaßen lautet:
SQL Error: Access denied for user ''xxxxx''@''%'' to database ''XXXXXXX'''
 

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0
Das einzige worauf Du achten musst ist, dass Du beim Erstellen dieses Benutzers beim Feld "Host" jeden Host zulässt. Die Standardbenutzer sind auf 'localhost' beschränkt. An der Konfiguration braucht man sonst nichts zu ändern.
 

Anhänge

  • phpmyadmin.PNG
    phpmyadmin.PNG
    16,4 KB · Aufrufe: 117

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Eine grundsätzliche Anmerkung:

Es ist nicht sonderlich sinnvoll, per Web auf eine MySQL-Datenbank zuzugreifen. Sinnvoller wäre, lokal auf allen beteiligten Rechner eine MySQL-Datenbank vorzuhalten und zwischen diesen zu synchronisieren (am besten immer im LAN, wenn Laptop oder Nettops im Einsatz sind). Die Alternative wäre ein Client-Server-Programm, welches als Server auf der DS residiert und mit einem Client auf dem entfernten PC unterhält (die meisten Web-Anwendungen sind ja so). Warum? Das MySQL-Protokoll ist nicht sonderlich ökonomisch und transportiert möglicherweise Daten auch unverschlüsselt. Besser ist daher immer, wenn man selbst steuern kann, was wann über die Leitung geht.

Itari
 

HarryPotter

Benutzer
Mitglied seit
24. Aug 2007
Beiträge
2.156
Punkte für Reaktionen
0
Punkte
0
Ich hab ja gesagt dass du dem Benutzer nicht die richtigen Rechte gegeben hast

Benutzername@xxxx.dyndns.org ist falsch!

Wie Trolli gesagt hast, der Benutzer muss

Benutzername@% (= jeder Host) oder benutzername@ip-adresse-des-zugreifenden-computers

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