Standard Applikation mit MySql vertreiben

Standard Applikation mit MySql vertreiben

am 05.05.2006 11:49:29 von emanuel

Hallo Zusammen,

ich habe mit Delphi und Oracle eine Standard Applikation für Windows
entwickelt.
Für kleinere Unternehmen oder Einzelpersonen hab ich nun auch eine
Einplatz-Version mit MySql erstellt und ich will diese Version mit
einer Installationsroutine (Installshield) vertreiben.

Ich verwende die neuste MySql-Stable-Version 5.0.21 und Delphi 7 mit
MyDac (ohne ODBC/BDE).

Da ich ein MySql Newbie bin, habe ich einige Fragen:
1 Welche Dateien des MySql-Servers sind unbedingt notwendig, damit
dieser läuft? Ich verwende nur InnoDB Tables (mysqld.exe).
2 Ist MySql, verwendet mit InnoDB, in der Regel wartungsfrei?
3 Ich will MySql nicht als Service installieren, sondern bei jedem
Programmstart den Server starten. Wie gross ist die Gefahr, dass es zu
Konflikten mit schon installierten (evt. laufenden) MySql Versionen
kommt?
4 Falls MySql schon läuft, könnte es auch eine Möglichkeit sein die
Datenbank auf dem bestehenden Server zu installieren? Bin zwar ziemlich
sicher, dass das keine gut Idee ist.

Gibt es über das Thema informationen (Bücher, Links)? Ich habe leider
bis jetzt nicht viel gefunden.

Vielen Dank für die Hilfe.
Emanuel Blaser
emanuelblaser yahoo.com

Re: Standard Applikation mit MySql vertreiben

am 05.05.2006 12:07:54 von Christian Kirsch

emanuel schrieb:
> Hallo Zusammen,
>
> ich habe mit Delphi und Oracle eine Standard Applikation für Windows
> entwickelt.
> Für kleinere Unternehmen oder Einzelpersonen hab ich nun auch eine
> Einplatz-Version mit MySql erstellt und ich will diese Version mit
> einer Installationsroutine (Installshield) vertreiben.
>
> Ich verwende die neuste MySql-Stable-Version 5.0.21 und Delphi 7 mit
> MyDac (ohne ODBC/BDE).
>
> Da ich ein MySql Newbie bin, habe ich einige Fragen:
> 1. Welche Dateien des MySql-Servers sind unbedingt notwendig, damit
> dieser läuft? Ich verwende nur InnoDB Tables (mysqld.exe).

Unter Linux würde ich sagen: mysqld und sämtliche shared libs. Unter
Windows ... keine Ahnung.

> 2. Ist MySql, verwendet mit InnoDB, in der Regel wartungsfrei?

Jein. InnoDB benutzt halt Dateien als Tablespaces, und irgendwann
könnte so eine Datei zu klein werden ...

> 3. Ich will MySql nicht als Service installieren, sondern bei jedem


Warum nicht? Das riecht doch nicht schlecht.

> Programmstart den Server starten. Wie gross ist die Gefahr, dass es zu
> Konflikten mit schon installierten (evt. laufenden) MySql Versionen
> kommt?

Ja. Natürlich.

> 4. Falls MySql schon läuft, könnte es auch eine Möglichkeit sein die
> Datenbank auf dem bestehenden Server zu installieren?

Ja. Ist das nicht bei Oracle auch so?

> Bin zwar ziemlich
> sicher, dass das keine gut Idee ist.

warum nicht?

>
> Gibt es über das Thema informationen (Bücher, Links)? Ich habe leider
> bis jetzt nicht viel gefunden.
>

Wo hast Du denn gesucht? Ich empfehle die Lektüre von
dev.mysql.com/doc - da steht eigentlich *alles* zu dem Thema.

Re: Standard Applikation mit MySql vertreiben

am 05.05.2006 12:21:23 von Axel Schwenke

"emanuel" wrote:
>
> ich habe mit Delphi und Oracle eine Standard Applikation für Windows
> entwickelt.
> Für kleinere Unternehmen oder Einzelpersonen hab ich nun auch eine
> Einplatz-Version mit MySql erstellt...

> 1. Welche Dateien des MySql-Servers sind unbedingt notwendig, damit
> dieser läuft? Ich verwende nur InnoDB Tables (mysqld.exe).
> 3. Ich will MySql nicht als Service installieren, sondern bei jedem
> Programmstart den Server starten. Wie gross ist die Gefahr, dass es zu
> Konflikten mit schon installierten (evt. laufenden) MySql Versionen
> kommt?

Diese Punkte lassen sich am einfachsten vermeiden, wenn du den
embedded Server verwendest. Das ist im Prinzip eine DLL, die du
zu deinem Programm linkst. Der MySQL Server läuft dann in
Subthreads deines Programms.



Ein Problem könnte sein, daß die Windows Builds längere Zeit
ohne embedded gelaufen sind. K.A. wie das im Moment ist.

> 2. Ist MySql, verwendet mit InnoDB, in der Regel wartungsfrei?

Jein. Unter ungünstigen Zuständen könnte das Datenfile stark
wachsen. Kommt darauf an, wie viel Schreiboperationen du machst
und ob die zu Fragmentierung führen können.

> 4. Falls MySql schon läuft, könnte es auch eine Möglichkeit sein die
> Datenbank auf dem bestehenden Server zu installieren? Bin zwar ziemlich
> sicher, dass das keine gut Idee ist.

Das ist eine Option, die ich als Anwender gern sehe. Allerdings
gibt es spezifische Probleme:

- paßt das installierte MySQL bzgl. Features und Version, was ist
wenn das (z.B. für eine andere Anwendung) mal updated wird?

- läßt der Anwender die Daten auch wirklich in Ruhe?

- verträgt sich das mit evtl. Datenschutz-Forderungen?

- wer startet/stoppt die Datenbank? Was macht eine Anwendung,
wenn die Datenbank nicht läuft?


XL

Re: Standard Applikation mit MySql vertreiben

am 05.05.2006 14:04:22 von emanuel

Axel Schwenke schrieb:

> "emanuel" wrote:
> >
> > ich habe mit Delphi und Oracle eine Standard Applikation für Windows
> > entwickelt.
> > Für kleinere Unternehmen oder Einzelpersonen hab ich nun auch eine
> > Einplatz-Version mit MySql erstellt...
>
> > 1. Welche Dateien des MySql-Servers sind unbedingt notwendig, damit
> > dieser läuft? Ich verwende nur InnoDB Tables (mysqld.exe).
> > 3. Ich will MySql nicht als Service installieren, sondern bei jedem
> > Programmstart den Server starten. Wie gross ist die Gefahr, dass es zu
> > Konflikten mit schon installierten (evt. laufenden) MySql Versionen
> > kommt?
>
> Diese Punkte lassen sich am einfachsten vermeiden, wenn du den
> embedded Server verwendest. Das ist im Prinzip eine DLL, die du
> zu deinem Programm linkst. Der MySQL Server läuft dann in
> Subthreads deines Programms.
>
>
>
> Ein Problem könnte sein, daß die Windows Builds längere Zeit
> ohne embedded gelaufen sind. K.A. wie das im Moment ist.

Embedded MySql tönt gut, hab leider keine Delphi library gesehen, was
nicht heisst, dass es nicht funktionieren könnte.

Da muss ich mich mal noch schlau machen.

> > 2. Ist MySql, verwendet mit InnoDB, in der Regel wartungsfrei?
>
> Jein. Unter ungünstigen Zuständen könnte das Datenfile stark
> wachsen. Kommt darauf an, wie viel Schreiboperationen du machst
> und ob die zu Fragmentierung führen können.

Ok. es wird sich nicht um riesige Datenmengen handeln, da für
Mehrplatz Anwendung so oder so ein eigener DB-Server (ob nun Oracle
oder MySql) installiert wird und dieser auch von einem Admin gewartet
werden muss.

> > 4. Falls MySql schon läuft, könnte es auch eine Möglichkeit sein =
die
> > Datenbank auf dem bestehenden Server zu installieren? Bin zwar ziemlich
> > sicher, dass das keine gut Idee ist.
>
> Das ist eine Option, die ich als Anwender gern sehe. Allerdings
> gibt es spezifische Probleme:
>
> - paßt das installierte MySQL bzgl. Features und Version, was ist
> wenn das (z.B. für eine andere Anwendung) mal updated wird?
>
> - läßt der Anwender die Daten auch wirklich in Ruhe?
>
> - verträgt sich das mit evtl. Datenschutz-Forderungen?
>
> - wer startet/stoppt die Datenbank? Was macht eine Anwendung,
> wenn die Datenbank nicht läuft?

Genau in diese Richtung hatte ich auch bedenken, obwohl es sich um den
10%Fall handelt, denn normalerweise wird ein Benutzer, MySql nicht
installiert haben.
Prüfen ob die DB läuft und dann starten ist kein Problem, das müsste
halt vor jeder Abfrage passieren.

Werde diese Variante doch noch genauer prüfen, weiss nicht mal ob ich
das MySql\Data\DB Verzeichnis nur kopieren kann und die DB schon
gefunden wird, oder ob ich die Tabellen/Daten per Script erstellen
muss, denn irgendwie muss ja das information_schema aktualisiert
werden.

Vielen Dank für die Infos
Emanuel

Re: Standard Applikation mit MySql vertreiben

am 05.05.2006 14:22:17 von emanuel

Christian Kirsch schrieb:

> emanuel schrieb:
> > Hallo Zusammen,
> >
> > ich habe mit Delphi und Oracle eine Standard Applikation für Windows
> > entwickelt.
> > Für kleinere Unternehmen oder Einzelpersonen hab ich nun auch eine
> > Einplatz-Version mit MySql erstellt und ich will diese Version mit
> > einer Installationsroutine (Installshield) vertreiben.
> >
> > Ich verwende die neuste MySql-Stable-Version 5.0.21 und Delphi 7 mit
> > MyDac (ohne ODBC/BDE).
> >
> > Da ich ein MySql Newbie bin, habe ich einige Fragen:
> > 1. Welche Dateien des MySql-Servers sind unbedingt notwendig, damit
> > dieser läuft? Ich verwende nur InnoDB Tables (mysqld.exe).
>
> Unter Linux würde ich sagen: mysqld und sämtliche shared libs. Unter
> Windows ... keine Ahnung.
>
> > 2. Ist MySql, verwendet mit InnoDB, in der Regel wartungsfrei?
>
> Jein. InnoDB benutzt halt Dateien als Tablespaces, und irgendwann
> könnte so eine Datei zu klein werden ...
>
> > 3. Ich will MySql nicht als Service installieren, sondern bei jedem
>
>
> Warum nicht? Das riecht doch nicht schlecht.

Da hast du recht, den Service kann ich ja starten und beenden. Meine
Idee war dem Benutzer nicht unnötig RAM zu klauen wenn mein Programm
nicht läuft.

>
> > Programmstart den Server starten. Wie gross ist die Gefahr, dass es zu
> > Konflikten mit schon installierten (evt. laufenden) MySql Versionen
> > kommt?
>
> Ja. Natürlich.

Evt. würde es reichen, den MySql-Server mit einem anderen TCP Port zu
starten, es stehen ja mehrere zur Verfügung.

>
> > 4. Falls MySql schon läuft, könnte es auch eine Möglichkeit sein =
die
> > Datenbank auf dem bestehenden Server zu installieren?
>
> Ja. Ist das nicht bei Oracle auch so?

Ja, bei Oracle mach ich das so, aber da wird die Installation auch von
Hand durchgeführt (Schema importieren). Die Oracle Version braucht
auch nicht allzu aktuell zu sein, im Gegensatz zu MySql da bin ich auf
die Version 5 angewiesen (SP, Triggers, Views).

>
> > Bin zwar ziemlich
> > sicher, dass das keine gut Idee ist.
>
> warum nicht?

Im Thread von Axel sind ein paar mögliche Komplikationen aufgeführt.

>
> >
> > Gibt es über das Thema informationen (Bücher, Links)? Ich habe leid=
er
> > bis jetzt nicht viel gefunden.
> >
>
> Wo hast Du denn gesucht? Ich empfehle die Lektüre von
> dev.mysql.com/doc - da steht eigentlich *alles* zu dem Thema.


Was die Vertreibung von Anwendung mit MySql anbelangt hab ich nicht
soviel gefunden, ansonsten find ich diese Hilfe Ok


Vielen Dank für die Antworten.
Emanuel

Re: Standard Applikation mit MySql vertreiben

am 05.05.2006 14:27:23 von Christian Kirsch

emanuel schrieb:
> Christian Kirsch schrieb:

>>> Programmstart den Server starten. Wie gross ist die Gefahr, dass es zu
>>> Konflikten mit schon installierten (evt. laufenden) MySql Versionen
>>> kommt?
>> Ja. Natürlich.
>
> Evt. würde es reichen, den MySql-Server mit einem anderen TCP Port zu
> starten, es stehen ja mehrere zur Verfügung.
>

Dazu solltest Du noch mal ein bisschen Dokumentation wälzen. Es gibt
Fälle, in denen MySQL keinen TCP-Port, sondern einen Socket benutzt
(schneller!).
>>> 4. Falls MySql schon läuft, könnte es auch eine Möglichkeit sein die
>>> Datenbank auf dem bestehenden Server zu installieren?
>> Ja. Ist das nicht bei Oracle auch so?
>
> Ja, bei Oracle mach ich das so, aber da wird die Installation auch von
> Hand durchgeführt (Schema importieren). Die Oracle Version braucht
> auch nicht allzu aktuell zu sein, im Gegensatz zu MySql da bin ich auf
> die Version 5 angewiesen (SP, Triggers, Views).
>
Dann würde ich die einfach mitliefern -> Axels Posting