MySQL (MariaDB) in Lazarus Windows und Linux einbinden
- juelin
- Beiträge: 296
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
MySQL (MariaDB) in Lazarus Windows und Linux einbinden
Hallo Lazarus-User,
Zu meiner Umgebung.
Ich habe Lazarus sowohl unter Windows als auch unter Linux installiert.
Windows:
Windows 10, Datenbank MariaDB 10.1.36, Lazarus_3_4, FPC 3.2.2,
Linux:
Ubuntu 22.4.3, MySQL 8.0.37, Lazarus 2.2.0, FPC 3.2.2
In beiden Systemen möchte ich auf die Datenbank zugreifen
und habe die Komponete TSQLConnector als SQLConnection1 auf die Form1 gezogen.
Im SQLCoonection1 habe ich die Eigenschaften
CoonectorType mit MySQL 8.0
DatabaseName mit mysql
HostName mit localhost
Password mit [mein Passwort]
UserName mit root
gefüllt.
Wenn ich nun die Eigenschaft Connected auf TRUE setze
bekomme ich folgende Fehlermeldung
In Windows:
can not load default MySQL Library libmysql.dll
Das File libmysql.dll steht im Verzeichnis: C:\Windows\System32
Dieses Verzeichnis ist auch in der Systemvariable Path eingetragen.
Lazarus sollte also das File finden.
In Linux:
can not load default MySQL Library libmysqlclient.so.21
Das File libmysqlclient.so.21 ist ein Link und steht im Verzeichnis
/snap/mysql-workbench-community/13/usr/lib/mysql-workbench
Im Delphi gibt es in den ProjektOptionen einen Suchpfad.
Konnte ich in Lazarus nicht finden.
Bin mal gespannt, ob Ihr da eine Lösung findest.
Ansonsten hoffe ich auf der Lazarus-Konferenz eine Lösung zu finden.
Danke und Gruß
Jürgen
Zu meiner Umgebung.
Ich habe Lazarus sowohl unter Windows als auch unter Linux installiert.
Windows:
Windows 10, Datenbank MariaDB 10.1.36, Lazarus_3_4, FPC 3.2.2,
Linux:
Ubuntu 22.4.3, MySQL 8.0.37, Lazarus 2.2.0, FPC 3.2.2
In beiden Systemen möchte ich auf die Datenbank zugreifen
und habe die Komponete TSQLConnector als SQLConnection1 auf die Form1 gezogen.
Im SQLCoonection1 habe ich die Eigenschaften
CoonectorType mit MySQL 8.0
DatabaseName mit mysql
HostName mit localhost
Password mit [mein Passwort]
UserName mit root
gefüllt.
Wenn ich nun die Eigenschaft Connected auf TRUE setze
bekomme ich folgende Fehlermeldung
In Windows:
can not load default MySQL Library libmysql.dll
Das File libmysql.dll steht im Verzeichnis: C:\Windows\System32
Dieses Verzeichnis ist auch in der Systemvariable Path eingetragen.
Lazarus sollte also das File finden.
In Linux:
can not load default MySQL Library libmysqlclient.so.21
Das File libmysqlclient.so.21 ist ein Link und steht im Verzeichnis
/snap/mysql-workbench-community/13/usr/lib/mysql-workbench
Im Delphi gibt es in den ProjektOptionen einen Suchpfad.
Konnte ich in Lazarus nicht finden.
Bin mal gespannt, ob Ihr da eine Lösung findest.
Ansonsten hoffe ich auf der Lazarus-Konferenz eine Lösung zu finden.
Danke und Gruß
Jürgen
- af0815
- Lazarusforum e. V.
- Beiträge: 6848
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
Windows: stimmt die Bitness ?! 32Bit vs 64Bit ? Welche Bitness hat Lazarus und welche dein Programm, weil die müssen nicht die gleichen haben und verwenden dann auch andere Treiber.
Linux: Der snappfad ist ungewöhnlich, da kann ich mir schon vorstellen das der komische Pfad aus irgendeiner Snap Installation stammt und nicht verwendet wird. Normal reicht das *-dev Paket zu installieren und damit werden die richtigen Links vom System gesetzt.
Das Thema ist sowohl für Windows und Linux schon oft behandelt worden, also bitte suchen.
Linux: Der snappfad ist ungewöhnlich, da kann ich mir schon vorstellen das der komische Pfad aus irgendeiner Snap Installation stammt und nicht verwendet wird. Normal reicht das *-dev Paket zu installieren und damit werden die richtigen Links vom System gesetzt.
Das Thema ist sowohl für Windows und Linux schon oft behandelt worden, also bitte suchen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
Wenn du unter Windows eine VErbindung aus der Entwicklungsumgebung heraus aufbaust, dann benötigst du die libmysql.dll im gleichen VErzeichnis, wo die Lazarus.exe liegt.
Kopiere die libmysql.dll dahin und es sollte funktionieren.
Kopiere die libmysql.dll dahin und es sollte funktionieren.
Gruß, Michael
-
- Beiträge: 354
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
Hast Du zum SQL-Connector auch den LibraryLoader dabei?
- juelin
- Beiträge: 296
- Registriert: Sa 24. Jul 2021, 18:03
- OS, Lazarus, FPC: Linux Ubuntu 22. Windows 10 Delphi 11.3 (L 0.9.xy FPC 2.2.z)
- CPU-Target: 64Bit
- Wohnort: Mannheim
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
hi zusammen,
habe libmysql.dll in den lazarus Pfad kopiert.
Wenn ich im Objektinspector die Komponente SQLConnector1 die Eigenschaft Connected auf True setzte
kommt folgende Fehlermeldung:
TMySQL56Connection can not work with the installed MySQL Client version: Expected (5.6), got (6.10)
Was muss ich tun?
Danke und Gruß
Jürgen
habe libmysql.dll in den lazarus Pfad kopiert.
Wenn ich im Objektinspector die Komponente SQLConnector1 die Eigenschaft Connected auf True setzte
kommt folgende Fehlermeldung:
TMySQL56Connection can not work with the installed MySQL Client version: Expected (5.6), got (6.10)
Was muss ich tun?
Danke und Gruß
Jürgen
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
Ich würde mal auf Linux Lazarus aktualisieren. Lazarus 2.2.0 ist schon zweieinhalb Jahre alt.
Dann hast du auch eine Version TMySQL57Connection oder TMySQL80Connection.
Vielleicht geht's damit.
Sonst auch "SkipLibraryVersionCheck" auf true setzten und schauen, ob es dann geht.
Dann hast du auch eine Version TMySQL57Connection oder TMySQL80Connection.
Vielleicht geht's damit.
Sonst auch "SkipLibraryVersionCheck" auf true setzten und schauen, ob es dann geht.
-
- Beiträge: 354
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
MySQL in der Version 5.6 installieren?
Bei den Connectoren scheint es einen Versionssprung zu geben. 5.6, 5.7, 8.0. Deine DB-Version scheint 6.1 zu sein. Das beißt sich wohl. Versuche mal den 8.0-Connector. Vielleicht tut der es.
Bei den Connectoren scheint es einen Versionssprung zu geben. 5.6, 5.7, 8.0. Deine DB-Version scheint 6.1 zu sein. Das beißt sich wohl. Versuche mal den 8.0-Connector. Vielleicht tut der es.
-
- Beiträge: 1084
- Registriert: Sa 12. Sep 2015, 12:10
- OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
- CPU-Target: Win 32/64, Linux64
- Wohnort: Wien
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
MariaDB wird bei den Lazarus-eigenen Zugriffskomponenten SQLDB recht stiefmütterlich behandelt. besonders wenns dann mal an eine Versionsprüfung geht.
Leider wird das Paket auch nicht zeitnah an aktuelle DB-Versionen angepasst.
- wenn du mit der Lazarus-GUI Zugriff auf die DB haben wills, brauchst du eine dll/so dort wo die GUI sie finden kann. Unter Windows ist das üblicherweise dort
Natürlich muss die Bitness von ddl/so, Lazarus-GUI und lauffähigem Programm passen.
Bevor es SQLDB gab habe ich bereits Datenbankverbindungen mit ZEOS hergestellt. Obwohl beide Komponenten im Kern unterschiedlich sind, wird das bei einfachen SQL-Befehlen kaum zu merken sein. Bislang bin ich mit ZEOS zufriedener als mit SQLDB.
Leider wird das Paket auch nicht zeitnah an aktuelle DB-Versionen angepasst.
- wenn du mit der Lazarus-GUI Zugriff auf die DB haben wills, brauchst du eine dll/so dort wo die GUI sie finden kann. Unter Windows ist das üblicherweise dort
Für das lauffähige Programm muss auch eine dll/so erreichbar sein (liegt dann oft auch im gleichen Verzeichnis wie die EXE) - du findest hier im Forum vieles das zum Thema passt.six1 hat geschrieben: So 21. Jul 2024, 11:40 libmysql.dll im gleichen VErzeichnis, wo die Lazarus.exe liegt.
Natürlich muss die Bitness von ddl/so, Lazarus-GUI und lauffähigem Programm passen.
Bevor es SQLDB gab habe ich bereits Datenbankverbindungen mit ZEOS hergestellt. Obwohl beide Komponenten im Kern unterschiedlich sind, wird das bei einfachen SQL-Befehlen kaum zu merken sein. Bislang bin ich mit ZEOS zufriedener als mit SQLDB.
- kralle
- Lazarusforum e. V.
- Beiträge: 1206
- Registriert: Mi 17. Mär 2010, 14:50
- OS, Lazarus, FPC: Manjaro Linux, Mint und Windows 10 ,Lazarus 3.99, FPC-Version: 3.3.1
- CPU-Target: 64Bit
- Wohnort: Bremerhaven
- Kontaktdaten:
Re: MySQL (MariaDB) in Lazarus Windows und Linux einbinden
Hallo Jürgen,
schaue Dir auch mal die PDF zu meinem Vortrag vom letzten Jahr an:
https://www.rompelsoft.de/downloads/laz ... ortrag.pdf
Gruß Heiko
schaue Dir auch mal die PDF zu meinem Vortrag vom letzten Jahr an:
https://www.rompelsoft.de/downloads/laz ... ortrag.pdf
Gruß Heiko
OS: MX Linux, Linux Mint und Windows 10
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1
FPC-Version: 3.3.1 , Lazarus 3.99
+ Delphi XE7SP1