• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

sqlite (lokal) --> mysql (Webserver)

noxx2

Neues Mitglied
Hallo,

ich brauche mal eine Anregung, Idee ....

Ich habe auf einem Linux System bei mir Zuhause eIn
Tool laufen, das seine Werte in eine sqlite Datenbank
schreibt (alle 10 Minuten einen neuen Datensatz).

diese Daten möchten ich gleichzeitig auch in meiner
mysql Datenbank auf meinem Webserver haben. Wie
könnte man das am besten umsetzen?

gruss
 
Hallo,

na in dem die einfach an server schickst.
am einfachsten per link zu einer Datei auf dem Server
xxxxxxxx.de/insertDB.php?a=sdsfsf&b=sadsds&usw

Den Link kannst ja per include aufrufen und fertig.

Cheffchen
 
Danke. Schonmal auf deinen link geklickt :)Schicke ich damit die komplette sqlite dB rüber oder
nur die neuen Einträge?
 
Sei aber vorsichtig. Ich weiß nicht, um welche Daten es sich handelt, aber u.U. öffnest du so alle Tore zu deiner DB.

Ein Authentifizierungsschlüssel in der URL wäre evtl. angebracht.
 
Hallo,

na nur den neuen eintrag, der dann einfach per insert in die DB eingefügt wird.

Cheffchen

Zugriff von aussen lässt mein Webhoster nicht zu.

Hatte erst die Idee das über ne CSV zu machen, aber das
scheint mir nicht die beste Lösung weil halt alle 10 Minuten
ein neuer Datensatz kommt.

vor allem kann aus mal vorkommen, das der webhoster ausfällt, warum auch immer.
dann wäre vermutlich ein oder mehrere datensätze futsch auf der mysql-db.

@bdt600
gucke ich mir an, danke
 
Hallo

wäre es ggf einfacher die Daten aus eine mySQL (Linux, Lokal) in
eine mySQL DB (Webserver) zu synchronisieren?
 
Du wirst zu 99,9% daran scheitern, weil in der Regel ein Zugriff auf den Datenbankserver von außen aus Sicherheitsgründen blockiert ist.
 
Per link ist nicht die Lösung, du müsstest ja jedesmal draufklicken.

Ein Cronjob auf der lokalen Maschine sollte den URL-Aufruf komfortabel erledigen können.

Zugriff von aussen lässt mein Webhoster nicht zu.

Du meinst wohl Zugriff auf den MySQL-Server. Die Zugriffsberechtigung ist auch nicht nötig, schließlich wird eine Datei des Webservers aufgerufen, die internen Zugriff auf die MySQL-Datenbanken hat. Demnach wäre eine Lösung mit PHP möglich.

wäre es ggf einfacher die Daten aus eine mySQL (Linux, Lokal) in
eine mySQL DB (Webserver) zu synchronisieren?

Das halte ich für wesentlich aufwendiger.
 
Warum nutzt du auf dem Webserver nicht auch SQLite? Dann kannst du die Daten einfach regelmäßig per FTP hochschieben.
Rsync wäre ne Möglichkeit dafür.

MfG
 
Warum nutzt du auf dem Webserver nicht auch SQLite? Dann kannst du die Daten einfach regelmäßig per FTP hochschieben.

Der Datenverkehr würde exponentiell ansteigen. Täglich dürften rund 150 Datensätze hinzukommen. Nach nur einem Monat sind das über 4000 Zeilen, die alle zehn Minuten (!) übermittelt würden.
 
Ok, das wäre Blödsinn :)
Andere Möglichkeit wäre nen SSH Tunnel zum Server, dann kannst du von deinem lokalen System auch direkt die DB ansprechen wenn dein Provider sowas zulässt. So arbeiten wir hier bei uns auch.
 
bevor ich mich an die Arbeit mache, das wäre das sinnvollste?

-> Neuste Daten aus SQlite oder mySQL per Cronjob mit nem PHP Script auslesen und in eine CSV schreiben
-> CSV per FTP mit Cronjob auf Server schieben (Geht das überhaupt mittels Cronjob?)
-> CSV auf Server per Cronjob und PHP Script wieder einlesen

Ok, das wäre Blödsinn
icon_smile.gif

Andere Möglichkeit wäre nen SSH Tunnel zum Server, dann kannst du von deinem lokalen System auch direkt die DB ansprechen wenn dein Provider sowas zulässt. So arbeiten wir hier bei uns auch.

Keine Ahnung ob der das zulässt, habe dieses Paket:
http://www.sysprovide.de/Basic-M.20.0.html

Gruss
 
Ich würde

-> Neuste Daten aus SQlite oder mySQL per Cronjob mit nem PHP Script auslesen

diese jedoch nicht in eine CSV schreiben. Die Daten werden per HTTP-GET und mit einem Sicherheitsschlüssel an den Webserver geliefert.

Lokale Maschine abstrakt:
PHP:
// Ermittle Informationen aus SQLite und speichere sie in $info[1-...]

$get = '?spalte1='.$info1.'&spalte2='.$info2.'&...';
$security = '&sec=sichererLangerUnbekanntesSchluessel';
$url = 'http://example.com/insert.php'.$get.$security;

if(file_get_contents($url) === 'true'){
    // Erfolg
}else{
    // Fehler
}

Entfernter Webserver abstrakt:
PHP:
if(!empty($_GET['sec']) && $_GET['sec'] === 'sichererLangerUnbekanntesSchluessel'){
    // Speichere GET-Parameter als neuer Eintrag in der MySQL-DB
    if(query()){
        echo 'true';
    }else{
        echo 'false';
    }
}
 
Zurück
Oben