Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL-Installation automatisieren (https://www.delphipraxis.net/41713-mysql-installation-automatisieren.html)

buyden 7. Mär 2005 15:58

Datenbank: MySQL • Version: 4.1 • Zugriff über: Zeos

MySQL-Installation automatisieren
 
Hi,

Ich habe eine Anwendung mit ner MySQL-DB gebastelt. Um das ganze jetzt aber auch auf anderen Rechnern zum Laufen zu bekommen, muss ja auf denen der MySQL-Server installiert werden. Das ganze ist mir persönlich aber ein bisschen zu aufwendig - Server konfigurieren, Benutzer anlegen...

Kann man das ganze nicht irgendwie automatisieren, dass also die Konfiguration und Benutzerverwaltung ohne Usereingriff von statten geht??

:stupid:

RavenIV 7. Mär 2005 16:08

Re: MySQL-Installation automatisieren
 
von mySQL gibt es den "embedded" server.
das ist ´ne DLL, mit der man auf die datenbank zugreifen kann.
dann musst du nicht den mySQL-serve installeiren, es reicht, wenn du die DLL mit auslieferst.

gruessle

buyden 7. Mär 2005 16:23

Re: MySQL-Installation automatisieren
 
hört sich gut an, hab mich auch grad mal kurz auf mysql.com umgeschaut, aber nix derartiges gefunden. hast du zufällig nen downloadlink parat liegen?

RavenIV 7. Mär 2005 16:33

Re: MySQL-Installation automatisieren
 
http://dev.mysql.com/downloads/mysql/4.1.html

dort den windows-server runterladen.
einmal installieren und die mysqld.dll (oder so) rauskopieren.


gruessle

Luckie 7. Mär 2005 16:56

Re: MySQL-Installation automatisieren
 
Äh, der Server muss aber trotzdem noch installiert werden! Die DLL dient nur der Kommunuikation mit dem Sever.

RavenIV 7. Mär 2005 17:00

Re: MySQL-Installation automatisieren
 
so wie ich das gelesen habe, braucht der server nicht installeirt zu werden auf dem zielsystem.
dort braucht es nur die DLL.

gruessle

Luckie 7. Mär 2005 17:05

Re: MySQL-Installation automatisieren
 
Zitat:

Zitat von RavenIV
so wie ich das gelesen habe, braucht der server nicht installeirt zu werden auf dem zielsystem.
dort braucht es nur die DLL.

Das ist klar, aber dort wo die Datenbanken liegen muss der Server installiert sein. Und wie ich die Frage verstanden haben, wollte er ganz ohne Server auskommen. Und das geht natürlich nicht.

RavenIV 7. Mär 2005 17:14

Re: MySQL-Installation automatisieren
 
da bin ich anderer meinung, weil das kein sinn macht.
einen embedded server baut man z.B. in einer CD ein.
dort wird dann sicher kein server installiert, sondern nur die DLL drauf kopiert und schon kommt man an die daten ran. Die BD-files müssen natürlich auch auf die CD drauf.

gruessle

Luckie 7. Mär 2005 17:16

Re: MySQL-Installation automatisieren
 
Und woher weiß die DLL wo die Datenbanken liegen?

RavenIV 7. Mär 2005 17:19

Re: MySQL-Installation automatisieren
 
die DLL wird wohl erst im gleichen verzeichnis schauen wie sie selbst liegt.
ansonsten kann man das sicher in einer *.ini oder *.conf einstellen.

müsste halt mal einer ausprobieren und hier berichten...

schönen abend noch -> hab jetzt feierabend.

gruessle

Luckie 7. Mär 2005 17:27

Re: MySQL-Installation automatisieren
 
Also ich bin der Meinung diese DLL dient nur dazu mit dem Server zu kommunizieren und hat keine Ahnung, wo die Datenbanken liegen. Also ich habe das mal ausprobiert. Den Unterordner von data mit der datenbank in das Anwendungsverzeichnis kopiert und den original Ordner umbenannt. Und die DB kann nicht geladen werden. Auch wenn ich die reinen Datenbankdateien in das Anwendungsverzeichnis kopiere klappt das nicht. Ergo muss der Server zwingent auf dem Datenbankserver installiert sein.

mschaefer 7. Mär 2005 17:53

Re: MySQL-Installation automatisieren
 
Hi Michael,

normalerweise liegst Du völlig richtig. Man braucht die Zugriffs-dll im Anwendugnsverzeichnis.
Aber (staun), es gibt tatsächlich auch den "Embedded server 4.1.10-0 2.7M" auf der Seite und das ist ähnlich wie bei Firebird. Scheint übrigens noch recht neu zu sein, denn den habe ich bisher auch nicht gesehen.

Grüße nach Hessen // Martin

fisherman_b 7. Mär 2005 18:23

Re: MySQL-Installation automatisieren
 
Hallo,

es ist nicht so, dass man nach dem Download des "Embedded MySQL Servers" eine DLL erhält, die man irgendwo hinkopiert. Vielmehr handelt es sich dabei um eine C/C++ Bibliothek, gegen die man ein eigenes Software-Projekt linken kann. Daher vermute ich stark, dass die "Konfiguration" in Makefiles und / oder den Header Dateien geschieht. Man erhält so einen MySQL-Server innerhalb der eigenen Anwendung, daher der Name "Embedded". Es gibt ein paar Funktionen, mit denen man dann die Daten ansprechen kann, die in der gleichen Form wie im FullSize MySQL Datenbank Server vorliegen. Jegliche mit dieser Library gelinkte Software muss übrigens unter der GPL zur Verfügung gestellt werden, da es sich bei "embedded MySQL" auch um GPL Software handelt. Einschränkungen gegenüber der Standalone Server Version gibt's natürlich auch, aber die scheinen für manche Zwecke, wo Grösse / Installationsaufwand etc im Auge behalten werden müssen, durchaus verkraftbar zu sein. Ein weiteres Goodie der "embedded"-Version soll ihre Geschwindigkeit sein.

Gruss,

Bernhard

buyden 8. Mär 2005 06:21

Re: MySQL-Installation automatisieren
 
also wie ich das jetzt verstehe muss der embedded server also direkt in der Anwendung konfiguriert werden - hat jemand schon Erfahrungen damit.

auf mysql.com gibt's kein wirkliches Tutorial dazu.

aber die embedded-lösung wäre recht ideal für meine anwendung - da die eigentlich nur als lokale Datenbankanwendung laufen soll.

fisherman_b 8. Mär 2005 10:23

Re: MySQL-Installation automatisieren
 
Hallo Buyden,

um prüfen zu können, ob der MySQL Embedded Server für Dein Projekt in Frage kommt, wirst Du nicht an einem eigenen Test vorbekommen, glaube ich. Aber der sollte innerhalb einer Stunde erschlagen sein. Ich kann mir gut vorstellen, dass das was für Dich ist.
Viele Einstellungen des MySQL Servers werden mit Compiler-Parametern bereits gesteuert. Manche davon können durch eine Konfigurations-Datei, die beim Start gelesen wird, oder über Kommandozeilen-Parameter überschrieben werden. Der embedded Server liest, genau wie der "herkömmliche" Server, eine solche Konfigurationsdatei. Unter Windows wird standardmässig nach einer Datei namens "my.cnf" gesucht, und zwar 1.) im Windows/System-Verzeichnis (globale Optionen) 2.) in C:\ (globale Optionen) und 3.) in C:\mysql\data (serverspezifische Optionen). Man kann auch beim Starten des Servers mit "--default-file=..." einen eigenen Pfad zur my.cnf festlegen.
Weil ich einen MySQL-Server (Linux) z.B. mit Transaktionen brauchte, habe ich ihn mir unter Linux auch selber kompiliert, es ist keine Hexerei. Leider ist das Client-Paket für Windows nicht separat erhältlich, man muss also die kompletten 17 MB des Server Quellcodes bei mysql.com runterladen (aktuelle stabile Version: 4.1.10). Darin findest Du auch eine Datei mit Beschreibungen der vielen Compiler-Parameter, u.a. der Hinweis, dass man die Embedded MySQL Library erhält, wenn man den Server mit der Option "--with-embedded-server" kompiliert. So werden die für einen in das eigene Projekt integrierten Server benötigten Libraries erzeugt. Hier gibt's Infos dazu, wie man die Library in einem C-Projekt verwenden kann.
Ausser den Server-Quellen benötigst Du natürlich einen aktuellen C++ Compiler. Vor einer Kompilierung des Servers sollte man sich aber wirklich einen kompletten Überblick über die Konfigurations-Parameter verschaffen, denn nich alle lassen sich anschliessend zur Laufzeit des Servers mit Kommandozeilen-Parametern überschreiben. Wenn ich mich richtig erinnere, ist im Windows Source Code Paket übrigens auch eine Beispiel-Projektdatei für Microsoft Developer Studio enthalten.

Gruss,

Bernhard

buyden 11. Mär 2005 19:06

Re: MySQL-Installation automatisieren
 
also mir wurde die Arbeit von einem HDD-Totalausfall abgenommen, jedenfalls ist mein Prog. erstmal weg :cry: es sei denn irgendjemand hat ne Idee, wie man die Daten von ner Platte bekommt, die nicht mal mehr vom BIOS erkannt wird. :wall:
Ich werd mich jetzt doch eher mit nem embedded Firebird-Server befassen, der scheint mir durchsichtiger zu sein, immerhin funzt der schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz