EleLa - Elektronik Lagerverwaltung Hilfe

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:

  1. Installieren der MySQL Datenbank lokal oder auf einem Server
  2. Laden der Client DLL für MySQL aus dem Internet
  3. Einrichten Datenbankzugang für EleLa (User / Passwort)
  4. Erstellen der Datenbank mittels EleLa
  5. 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.
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.

Mit "Teste Verbindung" kann nun kontrolliert werden ob die Verbindung funktioniert, dann wird die Lampe grün.

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.


© 2010-2023 by Markus Müller