Auf entfernte MySQL DB zugreifen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Community,

    ich habe ein kleines Problem, vielleicht habt ihr eine Idee.

    Ich sammle mit dem RPi Daten und speichere die auf dem RPi in einer MySql Datenbank ab. So weit auch kein Problem.
    Jetzt sollen diese Daten aber alle 2 Stunden oder bei besonderen Schwankungen an einen anderen Server auf dem auch ein MySql-Server läuft in dessen Datenbank koppiert werden.

    Jetzt hab ich nur keine Idee wie ich das anstellen kann. Habt ihr da eine Idee, Lösungsansatz? Ahja, das ganze soll mittels Python passieren, da das Script eh dauerhaft im Hintergrund werkelt.

    Einmal editiert, zuletzt von Entenwickler (11. Oktober 2016 um 07:54)

  • Hallo,

    na ich glaube ich habe mich blöd ausgedrückt. Der Raspi steuert weitere Hardware, diese gibt Rückmeldung. Diese Meldung speichere ich in der DB, bei auffälligen Werten und generell alle 2 Stunden möchte ich einige Daten, nicht die komplette Datenbank in eine andere Datenbank kopieren damit dort auf die Werte reagiert werden kann.
    Mein Problem ist das ich nicht weiß wie ich das anstellen soll die Verbindung zur anderen Datenbank aufzubauen.

    Wenn ich den selben Connectionstrin verwende nur mit angepasster IP-Adresse dann funktioniert das nicht, bin mir aber nicht sicher ob meine Idee so überhaupt funktioniert oder ob es evtl. andere möglichkeiten gibt.

  • Ich vermute oder interpretiere dass es um die Sicherung der Daten an eine weitere DB geht und er mit "besonderen Schwankungen" meint wenn viel Daten auftreten, er die Sicherung häufiger als nur alle 2h vornehmen möchte.
    Aber egal was auch immer er vorhat:
    Replication wenn es um die Sicherung bzw das verdoppeln der Daten in eine andere DB geht.
    Direkt auf die entfernte DB schreiben, wenn es darum geht das sie nur da benötigt bzw. aus gewertet werden sollen.
    Wenn es nur um Sicherung im allgemeinen geht, gäbe es noch diverse andere Möglichkeiten.
    Automatisch zusammengefügt:
    Frag doch einfach von dem anderen PI die DB ab und reagiere dann auf die Werte. Du musst doch deshalb die Daten nicht kopieren.
    Dafür musst du nur in der conf den remote zugriff erlauben und in der config der DB selbst einem User oder den Zugriff auf die DB von extern (außerhalb des DB-Pi) zulassen,

    --
    man ist das System-Anzeigeprogramm für die Handbuchseiten von Linux.

    Einmal editiert, zuletzt von Lunepi (11. Oktober 2016 um 10:38)

  • Wenn du ein Script hast was alle 2 Stunden deine lokale Datenbank nach auffälligen Werten durchsucht, brauchst du dort doch nur eine MySQL Verbindung zu deinem externen Server herstellen und dort die Daten einfügen.
    Verstehe irgendwie nicht wo da das Problem sein soll... Du musst dafür selbstverständlich schon eine eigene Verbindung herstellen, die bereits vorhandene Verbindung zu der lokalen DB kannst du dafür nicht verwenden - nicht zu kompliziert denken!

    Aber zeig doch mal dein bisherigen Versuch.

    Ansonsten bitte etwas konkreter werden, insbesondere warum "auffälligen Werten" oder "besondere Schwankungen" auf einen entfernten MySQL gespeichert werden sollen und was Dort wiederum dann passieren soll.


    PS: Er will nur bestimmte Werte extern speichern, nicht alles.


  • ...
    Dafür musst du nur in der conf den remote zugriff erlauben und in der config der DB selbst einem User oder den Zugriff auf die DB von extern (außerhalb des DB-Pi) zulassen,

    Der Hinweis ist schonmal interessant für mich. Nun, die Gegenstation ist kein PI, aber das ist erstmal nicht relevant.
    Der Grund für mein vorhaben ist folgender. Es kann nicht immer sichergestellt werden das der PI eine Internetverbindung hat, darum speichert er die Daten in ein seiner Datenbank. Es ist auch nicht tragisch wenn es mal keine Meldung gibt, hauptsache die Daten kommen irgendwann. Es sollen auch nicht alle Daten an die andere Datenbank übertragen werden.
    Zur Zeit habe ich es so gelöst, der PI verbindet sich per openVPN zum Server, das klappt auch alles. Jetzt versuche ich zur Datenbank zu verbinden, das klappt noch nicht. Aber ich hoffe das es der richtige Weg ist.

  • Der externe MySQL Server muss so konfiguriert sein das er Verbindungen von anderen IP's zulässt beziehungsweise ist Standardmäßig " bind = 127.0.0.1 " eingestellt, er lauscht also nur auf localhost - das musst du umstellen auf zB: bind = 0.0.0.0 ... dann lauscht er auf allen verfügbaren Network Devices.
    Und dann wär halt weiterhin die Frage wie du es bisher versucht hast :-/


  • Der externe MySQL Server muss so konfiguriert sein das er Verbindungen von anderen IP's zulässt beziehungsweise ist Standardmäßig " bind = 127.0.0.1 " eingestellt, er lauscht also nur auf localhost - das musst du umstellen auf zB: bind = 0.0.0.0 ... dann lauscht er auf allen verfügbaren Network Devices.
    Und dann wär halt weiterhin die Frage wie du es bisher versucht hast :-/

    meigrafd,
    ich glaube das ist der entscheidende Hinweis, das hab ich bisher noch nicht gemacht. Das werde ich mal versuchen. Vielen Dank erstmal.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!