Tutorial - Einrichten MySQL Datenbank
Dieses Tutorial zeigt wie man
ein MySQL Datenbank für EleLa einrichtet.
Ähnlich funktioniert auch die Einrichtung bei anderen Datenbanken
wie "PostgreSQL" und "MsSQL".
Benötigte Tools / Vorbereitung:
Beispiel für Tools die
unter Windows funktionieren, für Linux gibt es ähnliche
- MySQL Datenbankserver (z.B.
XAMPP)
- Datenbanktool z(.B. HeidiSQL)
- DLL "libmysql.dll"
Die einzelne Schritte die
nötig sind:
- Installieren der MySQL Datenbank
lokal oder auf einem Server
- Laden der Client DLL für
MySQL aus dem Internet
- Einrichten Datenbankzugang
für EleLa (User / Passwort)
- Erstellen der Datenbank
mittels EleLa
- Importieren/übernehmen
bestehender Daten von SQLite
Vorbereitung der Datenbank:
Wenn man noch keinen MySQL
Server hat so kann z.B. XAMPP von "http://www.apachefriends.org"
geladen und installiert werden. Oder man verwendet z.B. von einer DiscSation
(z.B. Synology) den MySQL Server oder MariaDB
(Aktivierung und Einrichtung ist bei jeweiligen Hersteller beschrieben).
Wenn noch kein MySQL Datenbank Server vorhanden ist so wird zu erst XAMPP
installiert. Während der Installation "Apache" und "MySQL"
auswählen, den Rest abwählen. Anschließend muss MySQL
als Dienst gestartet werden damit er nach jedem Windows Neustart zur Verfügung
steht, damit man mit dem ControlPanel von XAMPP den Dienst reinrichten
kann muss das ControlPanel mit Administrator Rechten gestartet werden.
Wenn man z.B. eine Synology DiscStation als Fileserver bereits besitzt
so kann man in dieser MariaDB aktivieren und hat somit auch einen zu MySQL
kompatiblen SQL Server.
Auch gibt es noch viele weitere Möglichkeiten wie man ein MySQL Server
auf dem lokalen PC oder auf einem Server im Netzwerk einrichtet. Mehr
Informationen gibt es darüber im Internet. Hier sind nur 2 der einfacheren
Möglichkeiten beschrieben.
Wenn man MySQL in einer Firma nutzen möchte so fallen Lizenzgebühren
an, MariaDB
ist 100% kompatibel zu MySQL und ist freeware (kompatibel zumindest bei
den Funktionen, die EleLa benötigt).
Vorbereitung EleLa, Laden der DLL "LibMySQL.DLL"
Bei der Installation von EleLa
wird nur die DLL für SQLite automatisch installiert. Wenn man andere
Datenbanken nutzen möchte so muss die dafür vorgesehene DLL
nachträglich installiert, bzw. in das EleLa Verzeichnis kopiert werden.
Da MySQL ein Fremdprodukt ist darf es nicht im EleLa Setup enthalten sein
und muss separat aus dem Internet geladen werden.
Wichtig: Wenn die EleLa
EXE eine 64 Bit Version ist, so muss die "libmysql.dll" auch
64 Bit sein.
Wie erkennt man welche EleLa
Version (32/64 Bit) man hat? Wenn man EleLa startet so steht in der Titelleiste
die Versionsnummer z.B. "V3.0.14205" bei einer 64 Bit EXE wird
der Version zusätzlich "V3.0.14205-64" angehängt.
Für den Betrieb mit MySQL
muss die DLL "libmysql.dll" Homepage von MySQL geladen werden:
"http://dev.mysql.com/downloads/connector/c/"
Falls der Link nicht mehr funktioniert: "http://dev.mysql.com/"
>> Downloads >> Community >> MySQL Connectors >>
Connector/C (libmysqlclient)
Hier kann das Windows ZIP Archiv für 32 oder 64 Bit geladen
werden, also nicht den MSI Installer laden.
Wenn man das ZIP Archiv entpackt so findet man im "lib" Ordner
die DLL "libmysql.dll", diese eine Datei in das Verzeichnis
von Elela.exe kopieren. Die Restlichen Dateien vom ZIP Archiv werden nicht
benötigt und können wieder gelöscht werden.
Einrichten Datenbankzugang (Benutzername / Passwort):
Als nächstes muss im MySQL
Server ein Login mit Passwort und Berechtigungen angelegt werden, diese
sind nötig damit EleLa auch auf die Datenbank zugreifen kann. Die
kann mit dem Tool "HeidiSQL" oder auf mit der Weboberfläche
"phpMyAdmin"
erfolgen.
Das Datenbanktool "HeidiSQL"
kann von "http://www.heidisql.com"
geladen werden. Die gezeigten Grafiken basieren auf HeidiSQL V9.1.0.4903.
Es kann direkt die EXE geladen werden, entsprechend wie EleLa sollte hier
auch die 32Bit oder 64Bit Version verwendet werden. Das Programm "heidisql.rXXXX.exe"
einfach in das gleiche Verzeichnis von EleLa kopieren, in der auch die
DLL "libmysql.dll" enthalten ist.
Die Bilder zeigen die Konfiguration
mittels "HeidiSQL":
|
Start von HeidiSQL - Einrichten der Verbindungsparameter einer
neuen Verbindung.
Host/IP: Die Adresse des Servers. Beim gleichen PC ist das localhost
oder 127.0.0.1.
Der Benutzername und Passwort ist nach der Neuinstallation so wie
gezeigt.
Port 3306 ist Standard bei MySQL, kann jedoch im Server auch umparametriert
werden.
Datenbank bleibt leer.
|
|
Anschließend wird die "Benutzerverwaltung"
geöffnet, denn es muss ein Zugangspasswort eingerichtet werden |
|
|
Nun wird mit "Neu" ein neuer Benutzer angelegt. Der Benutzername
"elela" und dem Host "localhost" und ein Passwort
wird eingegeben. Die Rechte müssen so eingestellt werden wie
gezeigt.
Anschließend wird der Benutzer mit "Speichern" gespeichert.
Der Dialog wird ein weiteres mal geöffnet und der Benutzer
"elela" wird mit der "Klonen" Taste kopiert
und anschließend der Host auf "%" gestellt.
Damit kann der User elela Lokal sowie über Netzwerk auf die
Daten der Datenbank zugreifen.
|
Ab EleLa V4 können Bilder bis zu 1MB größe in der
Datenbank gespeichert werden. MySQL jedoch verbietet zu große
Telegramme und beendet bei zu großen Bildern die Verbindung
mit der Fehlermeldung "Lost connection to MySQL server".
Damit dies nicht geschieht muss mit HeidiSQL die Variabme "max_allowed_packet"
auf 16MB erhöht werden, dies geschieht mit dem SQL Befehl der
in HeidiSQL ausgeführt werden kann:
SET GLOBAL max_allowed_packet = 16777216;
|
Nach dem Start von EleLa überprüft EleLa den Wert in
der Datenbank, sollte der Wert kleiner sein als 16MB so erscheint
eine Warnung im Log.
|
Der MySQL / MariaDB Server unterbricht die Verbindung zur Datenbank
automatisch nach 28800 Sekunden. Dieser Parameter kann im SQL Server
verlängert werden:
SET GLOBAL interactive_timeout = 86000; SET GLOBAL wait_timeout = 86000;
|
Die Variablen von Server können mit diesem Befehl abgefragt
werden, ändern geht nur mit dem "SET" Befehl.
SHOW VARIABLES WHERE Variable_Name LIKE "%_timeout";
|
|
Nun kann das Tool "HeidiSQL"
geschlossen werden. Alternativ kann auch jedes andere MySQL Tool verwendet
werden, die Einrichtung des Benutzers ist jeweils ähnlich.
Die Datenbank selbst wird noch
nicht angelegt, das erledigt EleLa im nächsten Arbeitsschritt.
Erstellen der Datenbank:
In EleLa sind Funktionen hinterlegt,
die automatisch eine Datenbank in den SQL Servern (MySQL, PostgreSQL,
MsSQL) erzeugen kann. Dies erleichtert das Erstellen der Datenbank sehr
und zugleich passt die erstellte Datenbank immer zur verwendetet EXE Version.
|
Unter Extras-F10 >
Log wird mit der Taste "Optionen" der Konfigurationsdialog
gestartet. |
|
Einstellung wie im Bild.
Hier kann der Datenbankname "elela" vergeben werden, die
im MySQL Server erzeugt wird.
Host ist der Server auf dem MySQL installiert ist. "localhost"
ist der lokale PC. Der Port ist in der Regel "3306". Wenn
auf dem Server zwei Instanzen von MySQL/MariaDB installiert sind,
so wird gerne für den zweiten SQL Server der Port "3307"
verwendet.
Benutzername und Passwort muss so eingestellt sein wie zuvor in
der Einrichtung mit HeidiSQL eingestellt wurde.
Die Taste "Erzeuge
neue Datenbank" erstellt die Datenbank im MySQL Server automatisch,
samt aller Tabellen.
Im Log protokolliert EleLa den Fortschritt der erzeugten Datenbank.
Bei Fehler kann es dort eingesehen werden.
Hinweis: "Erzeuge neue Datenbank" kann durchaus
einige Minuten benötigen ohne dass sich etwas am Bildschirm
tut. Man sollte in jedem Falls so lange warten bis entweder die
Datenbank korrekt erzeugt wurde oder eine entsprechende Fehlermeldung
am Bildschirm erscheint.
Wenn man EleLa aus ungeduld beendet so kann man erneut "Erzeuge
neue Datenbank" ausführen dabei macht EleLa an der Stelle
weiter an der zuvor unterbrochen wurde.
|
|
Mit "Teste Verbindung" kann nun kontrolliert werden ob
die Verbindung funktioniert, dann wird die Lampe grün und es
wird die Version angezeigt.
Nun muss die Einstellung
gespeichert werden, damit EleLa beim nächsten Start diese Daten
übernimmt. Dazu muss die "Speichern" Taste gedrückt
werden.
Mit "Schließen"
wird der Konfigurationsdialog geschlossen.
Damit die Änderungen
wirksam werden muss EleLa geschlossen und wieder neu gestartet werden.
|
Nach dem, Neustart von EleLa
sind alle Tabellen komplett leer.
Importieren der bestehenden Daten:
Jetzt können die bestehenden
Daten in die neu erstellte SQL Datenbank importiert werden. EleLa erledigt
dies für alle SQL Datenbanken, wie MySQL, PostgreSQL und MsSQL.
|
Im Reiter "Extras-F10"
> "Datenbank" kann eine bestehende Datenbank importiert
werden. Dazu wird dieses gezeigte Menü ausgewählt. |
|
Anschließend wird
die bestehende SQLite Datenbankdatei ausgewählt. Die Datei
heißt in der Regel "EleLa.sq3" und ist im gleichen
Ordner wie EleLa.
Die Häkchen belässt
man alle da alle Tabellen importieren werden sollen.
Mit der Taste "Import"
werden alle bestehenden Datensätze vom MySQL Server gelöscht
und die anschließend die Daten aus der SQLite Datei importiert.
Schließen beendet
die Export-/Import Fuktion und die neuen Daten stehen sofort zur
Verfügung.
|
Hinweis: Um die Daten
vom SQL Server zu sichern kann man ebenfalls die "Export" Funktion
benutzen. Dabei sollte als "Datei" eine neue Datei angegeben
werden damit bestehende Daten nicht überschrieben werden. EleLa exportiert
automatisch alle Datensätze in eine SQLite Datenbank. Diese SQLite
Datenbank ist somit eine Sicherung. Wenn man z.B. etwas in einer Sicherung
nachschauen muss, so muss diese Datei nicht wieder in den SQL Server importiert
werden, sondern man kann EleLa auf "sqlite-3" im Konfigurationsdialog
umparametrieren und die Sicherung direkt wieder mit EleLa öffnen
indem die "Datenbank" Datei angegeben wird. Selbst wenn die
Sicherung schon viel älter ist, so führt EleLa beim Öffnen
dieser SQLite-Datei automatisch einen Datenbank-Update aus. Damit ist
gewährleistet dass Sicherungen auch nach Jahren immer noch nutzbar
sind.
Die Datenbankhersteller bietet zwar Tools um die Daten zu sichern, diese
können jedoch nicht direkt mit EleLa gelesen werden.
EleLa bietet auch Kommandozeilenparameter
mit der ein Backup automatisiert realisierbar ist, somit kann der Systemandmin
ein EleLa-Backup automatisiert erstellen.
Wichtig: Regelmäßiges
Backup der Datenbank durchführen. Mit diesem Tool ist das schnell
gemacht.
Optional: MySQL Verbindung mit einer SSL Verschlüsselung verwenden
EleLa bietet die Möglichkeit
eine SSL Verschlüsselung der Verbindung zum SQL Server über
die "LibMySQL.dll" zu aktivieren. Dazu werden die entsprechende
Dateien mit der Verschlüsselung benötigt und können in
der EleLa INI Datei mit angegeben werden, diese spezelle Parameter werden
dann zur "LibMySQL.dll" weitergeleitet, diese baut darauf hin
eine sichere Verbindung zum Server auf. Diese Option ist interresant wenn
auf den Server z.B. über Internet zugegriffen wird.
Parameter |
Wert |
Beschreibung |
MYSQL_SSL |
TRUE |
Aktiviert die Parameterübergabe
der SSL Verschlüsselung in die "LibMySQL.dll" |
MYSQL_SSL_CA |
D:/mysql/certs/ca-cert.pem |
Diese Werte
werden per Funktionsaufruf "mysql_ssl_set()"
an MySQL übergeben. Details dazu bitte in der MySQL
Dokumentation lesen. |
MYSQL_SSL_CERT |
D:/mysql/certs/client-cert.pem |
MYSQL_SSL_KEY |
D:/mysql/certs/client-key.pem |
MYSQL_SSL_CAPATH |
|
MYSQL_SSL_CYPHER |
|
Demonstration der INI Dateierweiterung
von EleLa:
[DB_Properties]
MYSQL_SSL=TRUE
MYSQL_SSL_CA=D:/mysql/certs/ca-cert.pem
MYSQL_SSL_CERT=D:/mysql/certs/client-cert.pem
MYSQL_SSL_KEY=D:/mysql/certs/client-key.pem
MYSQL_SSL_CAPATH=
MYSQL_SSL_CYPHER=
|
Für eine SSL Verbindung
benötigt die "LibMySQL.dll" zusätzlich die SSL Verschlüsselungsdateien
von OpenSSL. Von wo diese 2 DLL Dateien geladen werden können ist
hier beschrieben.
|