Ich habe eine DB Applikation geschrieben, die auf mehreren Rechnern läuft (derzeit nur zwei). Momentan kopiere ich die fehlenden Einträge auf die jeweils andere DB.
Um mir das zu ersparen, würde ich gerne nur diese eine DB auf der Dropbox betreiben, alle anderen sollen weiterhin lokal bleiben, zumal die Dropbox nur 5GB bietet.
Wie kann ich MySQL mitteilen, dass sie nur eine DB in der Dropbox und alle anderen lokal betreiben soll?
Ich habe schon an einen link gedacht, aber vielleicht gibt es elegantere Lösungen?
MySQL setzt einen entsprechenden Datenbankserver voraus. Mit der Bereitstellung eines Serverabzugs als Datei erreichst Du nichts.
Was Du machen kannst ist ein Hosting-Paket zu verwenden, welches einen MySQL-Server zur Verfügung stellt (wird schon in vielen ganz kleinen Paketen für Hobby-Anwender für ein paar Euro angeboten), und die entsprechende Datenbank hierüber online zur Verfügung stellen.
Mach Dich aber bitte mit dem Thema Sicherheit in Bezug auf so eine Geschichte vertraut, wenn Dir dein SQL-Server und die entsprechenden Daten etwas wert sind.
Danke für die Antwort, es handelt sich dabei nur um ein Vokabel- und Konjugationslernprogramm, also keine sensiblen Daten. Ich wollte nur, wenn ich in der Volkshochschule sitze, direkt die neuen Vokabeln und Konjugationen eingeben (mit dem Netbook) und dann zuhause auf dem Stand-PC üben.
Weiters wollte ich meinen Kollegen diese Datenbank zur Verfügung stellen, damit sie alle nützen können.
Ich denke, ich werde es einmal mit einem symbolischen Link versuchen, derart altruistisch bin ich nicht veranlagt, dass ich das auslege, auch wenn es nur ein paar Euro sind . Ansonsten kopiere ich eben immer wieder die DB, mit zwei Clients ist das ja noch halbwegs übersichtlich.
Ich habe mir jetzt die Frage selbst beantwortet. Für den Fall, dass es noch jemanden interessiert: ich habe den DB-Ordner aus /var/lib/mysql/ ins den Dropbox-Ordner verschoben, danach einen gleichnamigen wieder in /var/lib/maysql/ angelegt. Und zum Schluß habe ich einen symbolischen Link des Ordnerinhalts hineinkopiert (ln -s ).
Wo die jeweiligen Ordner liegen, steht in /etc/mysql/mysql.conf
Anschließend ein mysqld restart und alles ist gut.
Vorsicht! Das funktioniert aber nur, wenn immer nur ein User Zugriff nimmt. Es existiert jetzt kein einheitlicher Datenbankserver mehr, der die ggf. konkurrierenden Zugriffe koordiniert. D.h. Du hast jetzt den Vorteil der Verwendung eines DB-Servers aufgegeben, und nutzt die DB jetzt wie eine einfache Datei. Das kann durchaus auch zu Beschädigungen der DB führen, und schränkt die angedachte gemeinsame Nutzung deutlich ein.
Danke für den Hinweis, obwohl Du jetzt meine Euphorie wieder gedämpft hast . Dann fürchte ich doch, dass ich auf ein anderes DB-System umstellen muss (DB2, LibreOfficeBase, oder gar Access).
Es wäre halt so schön gelaufen, aber für drei bis vier Tabellen muss es ja nicht unbedingt MySQL sein.
Die VM müsste dann auf dem Server laufen, somit wären wir wieder beim hosting, oder verstehe ich Dich falsch?
Es ist und bleibt ein blödes Vokabel- und Konjugationslernprogramm, das ich - wenn es fertig ist - meinen Mitschülern zur Verfügung stellen würde.
Derzeit ist es nicht so aufwändig, einmal die Woche 10-15 Vokabel und deren Konjugationen von einer Tabelle in die andere, sozusagen per pedes, zu kopieren. Es läuft lediglich ein Trigger auf der DB (wenn eine Konjugation eingegeben wurde, kopiere sie in die Vokabel-Tabelle, falls nicht vorhanden). Weiters werde ich verhindern, dass ein Mitschüler Datensätze löschen kann. Das sind sämtliche DB-Server-Funktionen, die ich - bis jetzt - brauche.
Das konnte ich auch auf der Client-Seite umsetzen.
Es gibt wahrscheinlich im Internet genug Gratisprogramme, die das längst (vielleicht sogar besser) können, mich reizte einfach, mir das selbst zu basteln. Es geht mir nicht um die 2-3 Euro. Soeben fiel mir ein, dass ich das sogar mit Textfiles (statt der Tabellen) lösen könnte.
dropbox ist doch auch eine art des Hostings. Das mit den Rechten bekommst du relativ einfach in den Griff, indem du deinen Mitschülern einfach nur lesezugriff gibst.
Durch diese Lösung hättest du den Vorteil, das du es zentral verteilen und verwalten kannst und mehr über Sicherheit lernst ( oder lernen musst )
Vorsicht! Das funktioniert aber nur, wenn immer nur ein User
Zugriff nimmt. Es existiert jetzt kein einheitlicher
Datenbankserver mehr, der die ggf. konkurrierenden Zugriffe
koordiniert.
Nicht umsonst ist die Replizierung bei verteilten DBs gar nicht mal so schnell hingerotzt