IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

mysql_real_connect() et mot de passe


Sujet :

SQL Procédural MySQL

  1. #1
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut mysql_real_connect() et mot de passe
    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.

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    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

  3. #3
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    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

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 13
    Par défaut Problème similaire
    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 :

    Mauvais 'handshake'
    Le pire c'est que ça fonctionne sur mon PC perso (Windows XP, Mysql 4.1.9, libmysql.dll du 02/06/2004, easyphp1.8) et pas au bureau (Windows 2000, Mysql 4.1.9, libmysql.dll du 02/06/2004, easyphp1.8).

    Tous les autres comptes fonctionnent : root ou utilisateur lambda créé par mon appli ou directement avec phpadmin.

    mysql.OpenConnection My_Host, "robot", "robot8%%£{123", "mysql", My_port, My_option
    J'ai tenté d'élargir les droits du robot, rien n'y fait.
    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.
    Accès refusé pour l'utilisateur: 'robot'@'@localhost' (mot de passe: OUI)
    ????? Comprends rien !!

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [phpMyAdmin] [phpMyAdmin] Problème mot de passe Root !
    Par StouffR dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 26/09/2014, 11h59
  2. [PostgresSQL]Pb accés des utilisateurs sans mot de passe
    Par woodwai dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 22/05/2003, 16h06
  3. [VB6] [ADO] [Access] Changer le mot de passe
    Par dlpxlid dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 03/03/2003, 09h45
  4. Réccupération du mot de passe d'une connexion
    Par zinaif dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2002, 18h32
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo