AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Schon wieder Ärger mit MySQL

Schon wieder Ärger mit MySQL

Ein Thema von Delbor · begonnen am 2. Jun 2016 · letzter Beitrag vom 6. Jun 2016
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 09:49
Datenbank: MySQL • Version: 5.7.12 • Zugriff über: Firedac
Hi zusammen
Mit dem Titel lehne ich mich an diesen Thread an. Damals kriegte ich die Sache mit dem 32-Bit-Treiber hin. In Probeläufen meines Projektes habe ich damals diverse Daten eingelesen, und das klappte einwandfrei.
In der Folge hab ich mich dann allerdings mit Versionskontrolle befasst und mir dazu TortoiseGit installiert,weshalb meiin Projekt einige Zeit nicht bearbeitet wurde.
Nun gestern die böse Überraschung: Das Ding startet zwar, aber mit der Fehlermeldung, Firedac könne sich nicht mit dem Server verbinden, weil der Treiber die falsche Architektur habe. Und tatsächlich: Wenn ich die Dialoge für ODBC-Datenquellen öffne, zeigt mir Windows die zur Verfügung stehenden Treiber an, wobei in einem eigenen Feld jeweils die Architektur angegebe wird. Und die ist für die von mir angelegten Datenquellen 64Bit.
Was ist da geschehen? Kann es sein, das der MySQL-Server merkt, dass er auf einem 64Bit-Windows läuft und sich desshalb automatisch auf den 64-Bit-Treiber updatet??

So, wie's aussieht, kann ich nur den MySQL-Server neu herunterladen und installieren. Zwar bietet MySQL immer noch die 32Bit-Variante zum Download des Community-Servers an. Aber ob da dann auch der Treiber 32bittig ist...?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.364 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 09:53
ich versteh noch nicht ganz, warum du bei Verwendung von Firedac den ODBC Treiber brauchst. Firedac sollte doch eigentlich direkt mit der Client.dll oder ggf. auch direkt mit dem Server sprechen....?
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 10:09
Die Bittigkeit des Servers ist doch i.d.R. egal. Du brauchst nur einen entsprechenden Client in der Bittigkeit (blödes Wort ;D) deines Programmes. Wir installieren auch überall Firebird 64 Bit, haben aber nur ein 32 Bit-Programm. Man braucht dann halt die 32-Bit-DLL von Firebird.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 12:08
Hi zusammmen
Den Server hab ich mir mit dem Komplettpacket installiert, und da ist ein MySQLOdbc-Treiber dabei. Anders als auf der verlinkten Seite sind da allerdings auch Treiber für alles mögliche dabei.
ich versteh noch nicht ganz, warum du bei Verwendung von Firedac den ODBC Treiber brauchst. Firedac sollte doch eigentlich direkt mit der Client.dll oder ggf. auch direkt mit dem Server sprechen....?
Das klingt hochnteresant. Das Problem ist nur: wenn ich in derOnlinehilfe zu Delphi nach Client.DLL suche, kommt das dabei raus.
Anssonsten habe ich zum Thema Verbindungen bisher nur dies und das gefunden, wobei ich im Projekt nur temporäre Verbindungen erstelle - offenbar kann ich Daten aus MySQL-Servertabellen nur über Verbindungen zur entsprechenden MySQL-Servertabelle abrufen und benötige zur Kommunikation mit meiner eigenen DB eine eigene Verbindung. Ausserdem dürfen diese beiden Verbinndungen nicht gleichzeitig aktiv sein.
Die Frage ist also: wie stelle eine Verbindung über diese Client.dll oder direkt her?

Zitat:
Die Bittigkeit des Servers ist doch i.d.R. egal. Du brauchst nur einen entsprechenden Client in der Bittigkeit (blödes Wort ;D) deines Programmes.
Und eben dieser Client (der MySQL-ODBC-Connector) ist 64Bittig...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 12:31
Hi zusammen

Um allen Missversatändnissen vorzubeugen, hier die erste Fehlermeldung bei Click auf "Fortsetzen" erscheinen noch weitere mit in etwa dem selben Inhalt):
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt ContentMasterDXE8.exe ist eine Exception der Klasse EFDException mit der Meldung '[FireDAC][Phys][MySQL]-314. Laden der Herstellerbibliothek [C:\Windows\libmysql.dll] nicht möglich. Library has unsupported architecture [x64]. Required [x86].
Hinweis: Überprüfen Sie, ob sie sich im PATH oder in Anwendungs-EXE-Verzeichnissen befindet und eine Bitanzahl von x86 hat.' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Statt bei Embarcadero hab ich die Client.dll auch mal auf Laufwerk C gesucht - mit 86 Ergebnissen...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 12:46
Aber die Fehlermeldung ist doch eigentlich eindeutig. Du brauchst die x86 (32-Bit) libmysql.dll, legst die in das Verzeichnis deiner Exe und fertig.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 13:06
Hi bra
Zitat:
Aber die Fehlermeldung ist doch eigentlich eindeutig. Du brauchst die x86 (32-Bit) libmysql.dll, legst die in das Verzeichnis deiner Exe und fertig.
Ja, das ist sie. Die Frage stellt sich: wie kommt die angemeckerte DLL dahin? Installiert habe ich seinerzeit ganz bewusst ddie MySQL32-Version. Was macht der 64-Bit-Teiber nun da?

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.364 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 13:11
ich versteh noch nicht ganz, warum du bei Verwendung von Firedac den ODBC Treiber brauchst. Firedac sollte doch eigentlich direkt mit der Client.dll oder ggf. auch direkt mit dem Server sprechen....?
Das klingt hochnteresant.
...
offenbar kann ich Daten aus MySQL-Servertabellen nur über Verbindungen zur entsprechenden MySQL-Servertabelle abrufen und benötige zur Kommunikation mit meiner eigenen DB eine eigene Verbindung. A...
Die Frage ist also: wie stelle eine Verbindung über diese Client.dll oder direkt her?
Falsch: Die Frage ist also: Warum setzt du FireDac ein? Um eine Verbindung zu einer Datenbank aufzubauen und Daten abzurufen (das macht also geneu das was du willst/brauchst)! Wie das Firedac im einzelnen macht kann dir erst mal egal sein. Und die Client.dll ist dabei ein "generischer" Begriff, der bei Firebird z.B. die fbclient.dll oder fbembedded.dll meint und bei MySQL eben die libmysql.dll. Es gibt auch KOmponentenhersteller (Devart), dort braucht man bei MySQL keinen Client.dll


Zitat:
Die Bittigkeit des Servers ist doch i.d.R. egal. Du brauchst nur einen entsprechenden Client in der Bittigkeit (blödes Wort ;D) deines Programmes.
Und eben dieser Client (der MySQL-ODBC-Connector) ist 64Bittig...
eben. weil du in ein 64bit OS eben keinen 32Bit ODBC Treiber installieren kannst - zumindest ist mir das bisher noch nicht gelungen und glücklicherweise brauch ich das aktuell auch nicht mehr


Daher: Beschaff dir eine 32 bittige libmysql.dll und leg die in deinen PFad in der die kompilierte Exe liegt, dann sollte es mit dem Zugriff auf die MySQL (von deinem 32 Bit Programm) auch passen...
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 13:22
Hi Bra
Wir installieren auch überall Firebird 64 Bit, haben aber nur ein 32 Bit-Programm. Man braucht dann halt die 32-Bit-DLL von Firebird.
Hmm - Das versuch ich mal - vielleicht lässt sich da ein 32Bit-Connector runterladen. Immer noch besser, als den ganzen Kram neu zu installieren...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Schon wieder Ärger mit MySQL

  Alt 2. Jun 2016, 13:57
Hi lemmy
eben. weil du in ein 64bit OS eben keinen 32Bit ODBC Treiber installieren kannst - zumindest ist mir das bisher noch nicht gelungen und glücklicherweise brauch ich das aktuell auch nicht mehr


Daher: Beschaff dir eine 32 bittige libmysql.dll und leg die in deinen PFad in der die kompilierte Exe liegt, dann sollte es mit dem Zugriff auf die MySQL (von deinem 32 Bit Programm) auch passen...
Das wirft für mich nun erstmal neue Fragen auf. Der Verlauf ist doch seit 'Urzeiten' Gleich:
  • Downloaden des Community-Servers (mit Connector etc in einer msi-Datei
  • Installationsvorgang per Doppelklick starten
  • ODBC-Datenquelle in Windows erstellen
  • libMysql.dll aus dem MySQL-Installationsverzeichnis nach C:\Windows kopieren

Ich hab bereits mal versucht, mir eine 32Bit-libMysql.dll downzuloaden. Google findet da einiges. Aber eben auch viele Seiten, von denen ich nicht genau weiss, wie stark da verlass drauf ist, auch das richtige zu kriegen.

Deine erste Aussage irritiert mich. Den Grund zeigen die beiden Anhänge.

Gruss
Delbor
Miniaturansicht angehängter Grafiken
odbc-datenuellen32.jpg   odbc-datenquellen64.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz