Bonjour à tous,

J'essai vainement de me connecter à un serveur MySQL 8.0.13 avec Firebird. Jusqu'à présent la connexion est réalisée à l'aide des composants MyDAC, on souhaiterait s'en débarrasser et utiliser Firedac mais voila, mes premiers essais sont infructueux.
Avec la version 8 de MySQL, j'ai vu que l'on est obligé d'utiliser le connecteur 64 bits que j'ai récupéré suite à l'installation de MySQL ( connecteur C ) je fais donc un essai en générant une appli 64 bits.

les informations de connexion sont renvoyés par un web service, j'utilise les composants FDConnection et FDPhysMySQLDriverLink et je les initialise comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
...  
begin
var
  l_AuthObj : authentificationObj;
  l_iCpt : Integer;
 
  WS_Authentification_dotNET := ws_auth.GetWS_AuthSoap(false, 'adresse du web service pour l''authentification');
  l_AuthObj :=  WS_Authentification_dotNET.RenvoiAuthentification(EditLogin.Text, EditMdp.Text);
  if Assigned(l_AuthObj) and (l_AuthObj.IdConnexion = 1) then
  begin
    try
      with FDConnection.Params do
      begin
        Clear;
        Add('DriverID=MySQL');
        Add('Server=' + l_AuthObj.IPServeurMySQL);
        Add('Port=' + IntToStr(l_AuthObj.PortServeurMySQL));
        Add('Database=' + l_AuthObj.nomBDD);
        Add('Username=' + l_AuthObj.LoginServeurMySQL);
        Add('Password=' + l_AuthObj.PasswordServeurMySQL);
        Add('UseSSL=false');
        if l_AuthObj.CompressionMySQL then
          Add('Compress=true')
        else
          Add('Compress=false');
      end;
      Memo.Clear;
      For l_iCpt := 0 to FDConnection.Params.Count - 1 do // pour afficher les infos de connexion reçus et vérifier qu'elles sont correctes.
        Memo.Lines.Add(FDConnection.Params[l_iCpt]);
 
      FDConnection.Connected := True;
      LabelStatus.Caption := 'Connecté au serveur !';
 
    except
      on E : Exception do ShowMessage(E.Message);
 
    end;
    l_AuthObj.Free;
end;
 
procedure TFormMain.FDConnectionBeforeConnect(Sender: TObject);
begin
  // emplacement du connecteur MySQL 64 bits car il n'existe pas de connecteur 32 bits avec la version 8 de MySQL
 
  FDPhysMySQLDriverLink.VendorLib := ExtractFilePath(Application.ExeName) + 'libmysql.dll';
  ShowMessage(FDPhysMySQLDriverLink.VendorLib);  / pour vérifier que la lib est bien chargée
end;
J'ai toujours l'erreur suivante

[FireDAC][Phys][MySQL] Access denied for user 'ODBC'@'xxx.xxx.xxx.xxx' (using password: YES)

Je ne comprend d'ailleurs pas pourquoi il me renvoi ODBC comme login car ce n'est pas celui que je lui envoie...

J'ai vérifié et re vérifié les infos de database, login, mdp, adresse serveur et port, elles sont correctes, d'ailleurs je me connecte bien au serveur en utilisant les composants MyDAC avec ces mêmes infos, j'utilise même MySQL workbench avec ces mêmes infos sans problèmes

Alors je dois passer à côté de quelque chose d'important mais je ne vois pas lequel...