Zum Inhalt springen

Datenbank an Anwender übersenden


Alex_winf01

Empfohlene Beiträge

Hallo liebe Forengemeinde. Ich schreibe gerade an einer Anwendung mit Java und einer MySQL-Datenbank. Ich habe bei mir bereits MySQL-Server installiert. Nun möchte ich nicht, dass der Anwender den kompletten MySQL-Server bei sich installieren muss, sondern nur die eigentliche Datenbank. Also dass, was bei MySQL im Ordner "data" liegt. Nun gibt der Anwender Daten ein und speichert diese ab.

Zur Verdeutlichung: der Anwender downloadet sich die Anwendung (ich liefere also für MySQL die Datenbank (aus dem Ordner data)). Und die eigentliche Anwendung.

Geht das überhaupt?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du meinst ein Script wo die daten drinstecken, damit der User diese dann in seine Datenbank einspielen kann?

Kein Problem. Das Kind heisst "mysqldump". Dies einfach in der Kommandozeile nutzen, und in eine Datei bla.sql schreiben. Diese kann man dann auf der anderen Seite mit mysql bla.sql wieder einspielen.

Einfach man mysqldump schaun wie du genau die Datenbank rausziehst ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, ich glaube, er möchte den Inhalt des data Ordner (in diesem werden die Daten der Datenbanken abgespeichert) an den Kunden senden und direkt drauf zugreifen können.

Also ich sags mal so:

Theoretisch ist das Möglich, nur hat der Kunde dann Dateien mit denen er nix anfangen kann. Er bräuchte trozdem einen MySQL Server da dieser die Schnittstelle zwischen - grob formuliert - SQL Statements und den Dateien aus dem data-Ordner darstellt.

Außer, dein Javaprogramm kann diese Dateien interpretieren und die Daten rausholen (dann hättest du so irgendwie deinen eigenen MySQL Server nachgebaut, natürlich nur mit Funktionen für dein Programm)

Du hast drei Optionen:

1. Du baust das um und verwendest direkt Dateien zum speichern der Daten

2. Du setzt vorraus, das der Kunde einen MySQL Server verwendet

3. Du stellst deinen Server ins Internet und konfigurierst dein Programm so, das es auf diesen Server zugreift.

Aber, um es nochmal zu sagen, die Dateien aus dem data-Order alleine bringen dir nix.

Das wäre in etwa vergleichbar mit: Du baust aus einem Auto den Motor, alle Elektrik und Mechanik aus und erwartest, das es/du immernoch fahren, blinken und Schalten kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Würde es genügen, wenn ich den mysql-Ordner inkl. der von mir vordefinierten Datenbanken mit zur Anwendung gebe?

Und noch was: Damit Java und MySQL miteinander kommunizieren können, brauche ich einen JDBC-Treiber (liegt vor). Der muss doch auch beim Kunden und auch in die Runtime eingebunden sein. Oder sehe ich das falsch?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo nochmal,

ich sehe in der zwischenzeit, dass es ohne SQL-Server nicht geht. Mein Kollege behauptet stuhr, es würde gehen, dem Kunden nur die Datenbank zu übermitteln. Wie kann ich ihm beweisen, dass es nicht geht? Wenn ich ihm mit dem Programm zeige, dass es nicht geht, behauptet er ich hätte mies programmiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Auch wenn ich dieserlei Fragen hasse, hier ist sie wirklich angebracht:

Warum wuerde man das wollen?

Die Gleichung von Snowman ergibt naemlich genau den sinn.... man braucht nunmal das System dazu, um mit den Daten arbeiten zu koennen.

Wenn dein Kollege unbedingt meint, es muesse gehn, soll er es dir zeigen... dann wird er schon sehn dass es nicht geht.

Rein technisch ginge es wenn du die Engine von MySQL nachprogrammierst... aber das waer wirklich unsinnig...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Klar geht es, wenn du den Inhalt vom Data Ordner kopierst. Im Data Ordner hat jede Datanbank des MySQL-Servers ein eigenes Verzeichnis. In dem Verzeichniss liegen die Daten der einzelnen Tabellen.

Du kannst theoretisch einfach den entsprechenden Ordner kopieren und der Kunde kopiert den bei sich in den Data Ordner.

ABER: Das ist zwar möglich, aber nicht die beste Lösung. Vor einer solchen Aktion sollte man den Server stoppen, da es ansonsten zu Datenfehlern kommen kann, wenn z.B. beim (Über-)schreiben der Dateien gerade auf den Server zugegriffen wird o.ä.

Also Backuplösungen (und damit auch zum Wiedereinspielen der Daten) gibt es z.B. mysqldump oder mysqlhotcopy. Damit wird nichts anderes getan, als eine Textdatei angelegt, die alle SQL-Kommandos enthält um deine DB + Tabellen und Inhalten wieder so anzulegen wie sie in dem Moment des Backups war.

Alternativ kannst du auch Tools wie den MySQL Administrator o.ä. verwenden, die eine ähnliche Funktion zur Verfügung stellen.

Das wäre die zu bevorzugende Methode. Du machst ein Backup der DB und der Kunde bekommt das Backup-File, welches er (oder auch dein Programm) dann in die DB einspielt.

EDIT:

Also wenn ich das nochmal lese: Ihr habt beide recht. Es ist möglich nur die Daten dem Kunden zu übermitteln (s.o.) und gleichzeitig braucht der Kunde natürlich einen (My)SQL-Server, auf dem die (einzeln übermittelten) Daten dann eingespielt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

ich habe leider keinerlei Erfahrung. Wie muss ich denn die Datenbank dann einbinden und wie kann ich sie administrieren? Ich weiss, dass es ein Admin-Tool dazu gibt. Könntest Du mir kurz eine Art "Anleitung" geben, wie ich die DB zu installieren kann und wie ich dieses Admin-Tool nutzen kann?

Das Tutorial habe ich bereits gesehen. Ich komme damit aber nicht so gut klar.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie muss ich denn die Datenbank dann einbinden und wie kann ich sie administrieren? Ich weiss, dass es ein Admin-Tool dazu gibt.

Kenne diese spezielle DB jetzt nicht, aber andere, die ähnlich funktionieren... Die Daten werden in so einer DB genauso wie in MySQL z.B. als Dateien gespeichert (das was im data-Ordner steht). Der Unterschied zu MySQL ist nur, dass MySQL ein Programm bereitstellt, was die Daten ausliest oder einträgt, der MySQL Server. Bei einer solchen DB ist die Logik zum Schreiben und Lesen der Daten nicht in einem externen Programm untergebracht, sondern in einer Komponente, die einfach in dein Programm eingebunden werden muss. Darüber kommunizierst du dann mit den Daten.

Meißt gibt es dann dazu eigene Komponenten, die wie die Standard DB-Komponenten aufgebaut sind. Darüber bindest du die DB dann ein und musst nur angeben, wo die Dateien liegen. Der Rest geht dann wie üblich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...