mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Beitragvon jeanP » 2. Feb 2016, 05:55 mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo,
bin ganz neu im Forum. Ich hoffe ihr habt ein paar nützliche Tipps.

Ich verwende Win10 (64) und habe den MySQL 5.6 Server installiert (Server version: 10.1.9-MariaDB). Da gab es schon mal Schwierigkeiten wegen der Portverwendung von Win10.
Die Datenbank läuft nun, aber ich bekomme beim connecten der Datenbank einen Fehler, dass die libmysql.dll nicht geladen werden kann. Diese dll habe ich aber aus dem MySQL-Installationsverzeichnis schon herauskopiert und in das System32-Verzeichnis von Windows kopiert.
Ich benutze Lazarus 1.4.4 und der Connector für MySQL 5.6 ist auch enthalten.
Hat jemand eine Idee, was noch getan werden muss, dass die dll erkannt wird? Stehe echt ein bissl auf dem Schlauch jetzt und komme net weiter. War vorher mit Win7 unterwegs, da lief es prima.

Danke im Voraus. :?
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon af0815 » 2. Feb 2016, 09:34 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Gib mal die Dll in das Verzeichnis, wo deine Exe vom Programm steht.
Vor allen kontrollier auch mal win32/win64. Wenn du ein Win64 Programm machst, dann brauchst du auch die DLLs in Win64 Version, für Win32 Programm natürlich die Win32 DLLs.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3160
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon jeanP » 3. Feb 2016, 07:13 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo, danke für die Antwort.
Die dll habe ich im system32-Verzeichnis des os und auch im Programmverzeichnis meiner exe. Die Fehlermeldung bleibt die Gleiche. Die dll ist aus dem x64-Package des MySQL 5.6.28 Installers.
Ist zum verrückt werden. :cry:
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon af0815 » 3. Feb 2016, 08:08 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Und du kompilierst für win64 in Lazarus ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3160
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon jeanP » 10. Feb 2016, 04:53 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo af0815,

eigentlich nicht. In den Projekteinstellungen ist eingestellt, dass eine Win32-GUI-Anwendung erzeugt wird.
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon Christian » 10. Feb 2016, 05:29 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Win32 GUI Anwendung entscheidet nur darüber ob GUI oder Kommandozeile, nicht ob 32 oder 64bit.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6079
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon jeanP » 12. Feb 2016, 06:20 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Wie kann ich das prüfen? Es sollte schon eine 32-bit Anwendung sein. Kann mann auch beides erzeugen?
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon marcov » 12. Feb 2016, 10:19 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

jeanP hat geschrieben:Wie kann ich das prüfen? Es sollte schon eine 32-bit Anwendung sein. Kann mann auch beides erzeugen?


Mit mitgelieferten Tools: versuche ob FPC's "objdump -D <datei>" eine Assemblerlistung erzeugt. Eine exe Typ Indikator ist als erste Zeile in den Output enthalten.

Mit "objdump -i" kann man sehen welche Formate unterstützt sein. (typisch 32-bit Typen für 32-bit Versionen, und 64-bit für 64-bit Versionen)
marcov
 
Beiträge: 982
Registriert: 5. Aug 2008, 08:37
Wohnort: Eindhoven (Niederlande)
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk) | 
CPU-Target: 32/64,PPC(+64), ARM
Nach oben

Beitragvon jeanP » 13. Feb 2016, 05:29 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo marcov,



Mit mitgelieferten Tools: versuche ob FPC's "objdump -D <datei>" eine Assemblerlistung erzeugt. Eine exe Typ Indikator ist als erste Zeile in den Output enthalten.

Mit "objdump -i" kann man sehen welche Formate unterstützt sein. (typisch 32-bit Typen für 32-bit Versionen, und 64-bit für 64-bit Versionen)


sorry, ab jetzt verstehe ich nur noch Bahnhof.
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon Thomas B. » 14. Feb 2016, 11:18 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Für eine 64Bit dll braucht man auch ein 64Bit Programm, das diese Datei auch laden kann.
Compilereinstellungen --> Konfiguration und Ziele --> Ziel-Betriebssystem (-T) = "Win64" und Ziel-CPU-Familie (-P) = x86_64
Thomas B.
 
Beiträge: 88
Registriert: 2. Nov 2007, 13:32
Wohnort: Ulm
OS, Lazarus, FPC: Win (L 1.0 FPC 2.6.0) | 
CPU-Target: 32Bit
Nach oben

Beitragvon jeanP » 15. Feb 2016, 05:17 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo Thomas, danke für die Erklärung.
Bei mir stehen diese auf '(Voreinstellung)'. Welche 'Voreinstellung' ist das dann? Habe das vorher noch nicht berücksichtigt mit Win7 und die Anwendungen sind gelaufen.
Wird dann das Betriebssystem ausgelesen und die entsprechende Einstellung automatisch getroffen?

Muss ich dann jeweils eine *.exe für 32-bit und eine für 64-bit erzeugen oder gibt es auch die Möglichkeit, eine exe zu erstellen, die mit beiden bit-Varianten läuft?
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon af0815 » 15. Feb 2016, 09:34 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Normalerweise reicht es das du eine 32Bit Anwendung erzeugst. Dann die entsprechenden 32 Bit Komponenten installieren und es läuft auch auf 64 Bit windows.

Wenn du eine exe mit einem Texteditor öffnest oder Hexviewer, siehst du bei einer Win32
PE L

bei Win64

PE dt

am Anfang stehen. Damit kann man rasch prüfen was man für eine Exe vor sich hat. Mit objectdump aus den fpc Werkzeugen gehts genauso.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3160
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon jeanP » 28. Feb 2016, 07:51 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo,

vielen Dank für die hilfreichen Tipps.

Es lag an der bit-Version. Lazarus scheint, wenn keine andere Einstellung getroffen wurde, eine 32-bit Anwendung zu erstellen.
Die libmysql.dll (32-bit) muss (so ist es zumindest bei mir) ins Stammverzeichnis von Lazarus kopiert werden. Ich hatte die dll ins Windows/System32-Verzeichnis kopiert als auch ins Programmverzeichnis meiner Anwendung, dass schaffte keine Abhilfe. Aber im Stammverzeichnis von Lazarus scheint es wohl zu funktionieren.

LG :D
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

Beitragvon af0815 » 28. Feb 2016, 16:08 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

jeanP hat geschrieben:... Aber im Stammverzeichnis von Lazarus scheint es wohl zu funktionieren. ..

Zur Designzeit ist die im Stammverzeichnis von Lazarus aktiv, zur Laufzeit die im Stammverzeichnis der App. IMHO meine Erfahrung.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3160
Registriert: 7. Jan 2007, 10:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: Win7/Linux (L stable FPC stable) per fpcup | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon jeanP » 29. Feb 2016, 18:08 Re: mySQL 5.6 (libmysql.dll kann nicht geladen werden)

Hallo af0815,

wollte gerade die Korrektur hier eintragen, aber das hast du schon getan.
Genau das habe ich heute festgestellt, als ich eine andere Anwendung mit DB-Anbindung starten wollte (über die *.exe). Habe die libmysql.dll dann in das Programmverzeichnis kopiert und schon ging es.

LG :)
jeanP
 
Beiträge: 21
Registriert: 1. Feb 2016, 07:48

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried