|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() ![]() Pierre Maurette Inscription : juillet 2002 Messages : 267 ![]() |
Bonjour,
J'essaie de faire fonctionner un accés à MySQL local à partir de Turbo C++ Explorer (équivalent C++ light de Borland Developper Studio 2006). J'ai deux approches, chacune aboutissant à un souci. Voici le premier: J'utilise l'API mySQL conformément au tuto: http://lfe.developpez.com/BCBmySQL/ Tout fonctionne, si ce n'est qu'il m'est impossible de me connecter si mySQL est affublé d'un mot de passe non vide. Si j'appelle mysql_real_connect() avec un mauvais mot de passe, ou pas de mot de passe s'il en faut un, j'ai un message correspondant à ce que j'attends. Si j'appelle avec "" et que je n'ai pas de mot de passe mySQL, je me connecte. En revanche, avec le bon mot de passe (non vide), j'ai un "Bad handshake" ou "Mauvais 'handshake'" selon la version de mySQL. Ce n'est pas bloquant (je peux bosser sans mot de passe), mais j'aimerais bien comprendre et résoudre cette curiosité. Il semble (Google) que je ne suis pas seul à avoir ce problème, mais personne ne propose de solution, dans une langue compréhensible par moi en tout cas. Une suggestion ? Merci d'avance, et bonne journée. |
|
|
00
|
|
|
#2 |
|
Provisoirement toléré
Inscription : juin 2003 Messages : 2 622 ![]() |
Salut,
Il sagit sûrement d'une incompatibilité de version entre ton serveur MySQL et libmysql.dll sur ton poste. A partir de MySQL 4.1, le protocole d'authentification au serveur a changé. Il faut soit utiliser une version plus récente de libmysql.dll soit réencoder tes mots de passe dans la table mysql.user en utilisant OLD_PASSWORD(). Cf http://dev.mysql.com/doc/refman/4.1/en/old-client.html
__________________
Pensez au bouton
|
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() ![]() Pierre Maurette Inscription : juillet 2002 Messages : 267 ![]() |
Merci, c'était bien ça.
En fait, je m'étais un peu mélangé les crayons avec la bibliothèque d'importation libmysql.lib et le hasard avait fait qu'un libmysql.dll un peu défraîchi traînait certainement dans le path. Il semble que la version la plus récente (livrée avec mySQL 5) fonctionne également vers un serveur en version 4 (en tout cas 4.1). En revanche, ça ne change rien au problème évoqué dans mon autre post. J'y croyais un peu, puisque c'était la même DLL qui était enregistrée. Merci encore, et bonne journée. Pierre Maurette |
|
|
00
|
|
|
#4 | |||
|
Invité de passage
![]() Inscription : décembre 2005 Messages : 13 ![]() |
Bonjour,
Je rencontre un pb similaire. Avec VB6. Dans une version précédente de mon code j'utilisais la librairie dll (real_connect etc). J'ai besoin de connecter un superutilisateur virtuel afin de permettre à des visiteurs de s'enregistrer avec leur login et mdp. Ce compte virtuel me permet d'avoir momentanément les droits suffisants pour effectuer des créations d'utilisateurs. le login et le mdp de ce compte virtuel sont transmis dans le code. (compte créé à l'origine par le code également avec des droits idoines sur "mysql") Depuis que j'utilise l'API J'obtiens un msg "mauvais Handshake" quand je veux connecter mon compte virtuel (robot) dans le code. Erreur 1043 : Citation:
Tous les autres comptes fonctionnent : root ou utilisateur lambda créé par mon appli ou directement avec phpadmin. Citation:
J'ai changé la version de la dll, j'en avais une de 2005. Ca passe pas non plus mais l'erreur change 1045 au lieu de 1043. Citation:
Merci |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com