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

C++Builder Discussion :

Pb de config serveur MySQL et BC++


Sujet :

C++Builder

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut Pb de config serveur MySQL et BC++
    Bonjour a tous j'ai un petit soucis et je ne sais pas comment le resoudre :

    Alors voila j'avais besoin de developper une application avec une base de données derrière. J'avais mis au depart easy php qui me permettait d'avoir MySQL tournant derriere. Tout allait bien. Le truc c'est que c'était une appli qui tournait en local chez moi, je me connectais donc sur localhost avec comme login ROOT et pas de mot de passe.

    Là j'ai decidé d'enlever EasyPhp de facon a ne plus avoir qu'un serveur MySQL. J'ai donc tout enlevé, meme le service dans windows, et j'ai installé ce que j'ai telechargé depuis www.mysql.com. Tres bien, il m'installe un nouveau service, c'est tres beau, mais maintenant on est obligé de rentré un mot de passe root lors de l'installation. J'en met un. L'installation est finie. Je place dans le "rep de mysql \data\" mes anciennes données. Je lance SQLFront et je me connecte avec le mot de passe : ca fonctionne.
    Dans mon apppli sous builder je n'aurais theoriquement q'une ligne a changer : la valeur PASSWORD dans les paramètres de mon objet DBX (c'est un TSQLConnection). Je fais "tester la connection" et la ca foire : Invalid User/Password..... comment corriger ce probleme ?

    Ce que je comprend pas surtout c'est que dès qu'on implémente un objet TSQLCOnnection il sait tout seul ou aller chercher l'exe mysqld.exe et effectuer les connection. Comment definir ca, imaginons qu'il ait gardé en mémoire l'ancien chemin lié a EasyPHP, non ?

    Sinon dans hostname je met bien localhost donc je ne vois pas ou est le pb.

    Merci de m'aider et a bientot.
    Alexandre


    Edit :
    PS : dans le champ vendorlib de l'objet TSQLConnection j'avais une libmysql.dll, et j'avais mis ces deux fichiers dans le repertoire de mon application :
    libmysql.dll
    libmysql.lib

    Ca ne serait pas ces deux fichiers quil faudrait remplacer par hasard ?
    Merci.

  2. #2
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour
    les attributs de sécurité ont changé à partir de la version 4 de mysql
    le password est maintenant codé sur 41 bits
    il faut donc utiliser l'utilitaire de my sql pour définir un mot de passe compatible avec la version précédente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set user 'root'=OLD_PASSWORD('password');
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Merci pour ton aide, ca semble une solution sympa.

    Mais cette ligne de commande je la tape dans une console mysql, et ca me reponds
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unknown System Variable 'user'
    Je la tape avant ou apres avoir fais un 'use mysql' comme base de données. Je sais pas si c t sensé changer quelque chose mais bon j'ai ce message d'erreur sinon j'aurais bien essayé au plaisir ta solution

    Merci
    A plus
    Alexandre

  4. #4
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Sinon si c taper simplement cette ligne dans une commande DOS que tu voulais dire, je l'ai fait aussi. Ca me dit rien (dailleurs SET ca fixe une variable d'environnement alors je suis pas sur quil fallait le taper dans une commande DOS !!) et bref ca fait toujours pareil : mot de passe invalide.

    PS : dans mysql/bin y a bien un mysqllib.dll aussi de 1 Mo. je le prend et le met avec mon programme (en ecrasant l'ancien mysqllib.dll de 200 ko), et mon prog lance une exception lié a DBX : impossible de trouver mysqllib.dll.

    Donc y aurait pas une histoire de dll la dedans ?

  5. #5
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    oups
    il fallait lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set password FOR 'root' = OLD_PASSWORD("password");
    il ne faut pas écarse la dll livrée avec Borland car elle est appellée par une autre dll de DBexpress

    il existe également en freeware les excellents Zeoslib qui sont une excellente alternative a dbExpress
    un excellent site en français sur mySQL
    http://dev.mysql.com/doc/mysql/fr/index.html

    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Merci pour ces informations sur les DLL.

    J'ai toujours le meme probleme, je suis desolé.

    Que fait ta ligne de commande au juste ? Elle est censée changer le mot de passe root en fixant un nouveau mot de passe codé sur l'ancienne version de mysql ?
    Bref quand je l'execute ca me dit "0 rows affected"....
    Et quand je change ce mdp, que je me deconnecte puis reconnecte de ma console sql, j'entre toujours l'ancien MDP et ca fonctionne toujours, d'où le "0 row affected".

    Je comprends riennnnnnnnnnnnnn !!!!!
    Merci pour ton lien sur les Zeoslib. J'ai deja toutes une architecture sur ces dbexpress je trouverai dommage de tout refaire pour ca...

    Merci pour ton aide.
    A bientot.

  7. #7
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonjour,
    OLD_PASSWORD te code ton password sous 16 caractères ce qui le rend compatible avec la version précédente
    MySQL te répond par query OK

    il faut utiliser de la manière le composant TSQLConnection
    d'abord modifier le fichier dbxdriver.ini se trouvant dans le répertoire FichierCommun\borlandShared\DBExpress

    ajouter les lignes suivantes
    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
    MySQLCon=1
     
    [MySQLCon]
    GetDriverFunc=getSQLDriverMYSQL
    LibraryName=[b]dbexpmysql.dll[/b]
    VendorLib=libmysql.dll
    BlobSize=-1
    Database=test
    ErrorResourceFile=
    HostName=localhost
    LocaleCode=0000
    Password=
    User_Name=root
     
    dans le fichier [b]dbxconnections.ini [/b]ajoute les lignes suivantes
    [MySQL_4]
    DriverName=MySQLCon
    BlobSize=-1
    Database=test
    ErrorResourceFile=
    HostName=localhost
    LocaleCode=0000
    Password=
    User_Name=root
    fait un nouvel essai avec le composant TSQConnection avec cette nouvelle liaison

    remarque
    1
    la base de données test est crée lors de l'installation de MySql
    2.la nouvelle version de C++Builder (Borland Developper Studio 3) sera compatible avec mySql 4.1

    Cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    2.la nouvelle version de C++Builder (Borland Developper Studio 3) sera compatible avec mySql 4.1
    Hello. Ca ne voudrait pas dire tout simplement que la version (4.1) de mysql que je viens de prendre sur le site www.mysql.com n'est pas compatible avec BC6 ??

  9. #9
    Membre chevronné
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    bonsoir,
    elle l'est avec un password réduit a 16 caractères et les modification que j'ai postées précédemment
    cordialement
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Je suis desol2 mais j'ai essayé tes reglages et ca ne fonctionne pas du tout !!!
    Dans les fichiers INI que tu m'as cités j'avais deja les parametres suivant :

    dbxdrivers.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    [MySQL]
    GetDriverFunc=getSQLDriverMYSQL *
    LibraryName=dbexpmysql.dll *
    VendorLib=libmysql.dll *
    HostName=ServerName 
    Database=DBNAME 
    User_Name=user
    Password=password
    BlobSize=-1 *
    ErrorResourceFile= *
    LocaleCode=0000 *
    Les * montrent les lignes qui ne diffèrent pas avec le morceau de INI que tu m'as proposé. Donc différent le user, psswd, et dbname, ce qui est normal et ne change rien.

    dbconnexions.ini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [MySQLConnection]
    DriverName=MySQLCon
    BlobSize=-1 *
    Database=test 
    ErrorResourceFile= *
    HostName=localhost *
    LocaleCode=0000 *
    Password= *
    User_Name=root *
    La encore seul DriverName qui utilise MySQLCon au dessus est changé. Je ne vois pas la différence avec ce que j'avais avant.

    Donc resultat ca marche toujours pas !
    Donc deux questions :

    1) Est-ce vraiment normal que lorsque je met le mot de passe pour root en old password ca me dise 0 row affected !! ?
    2) Comment faire pour dans une console SQL changer un mot de passe root ??? Si c'est la ligne que tu m'a donnée alors ca ne fonctionne guère puisque je dois toujours me connecter avec le premier mot de passe qu'a j'avais entré lors de l'install.

    Merci pour ton aide !!
    A bientot.

  11. #11
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    Ca y est ca marche.

    Effectivement le probleme venait de cette ligne la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set password for 'root' = OLD_PASSWORD('pass');
    puisque ca ne modifie pas le mot de passe root dans une console SQL.... Je ne sais pas pourquoi.

    Par contre lorsqu'on est connecté en tant que root (mysql -uroot -p) on a qu'a faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set password = OLD_PASSWORD('pass');
    Et la ca change effectivement le pass !!!
    Aucun changement a faire dans BC++.

    La seule astuce c t les OLD_PASSWORD !!
    Alors merci bcp et bon noel !!!

  12. #12
    Membre habitué Avatar de monnoliv
    Homme Profil pro
    Opticien-ébéniste: lunettes de WC
    Inscrit en
    Août 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opticien-ébéniste: lunettes de WC

    Informations forums :
    Inscription : Août 2003
    Messages : 139
    Points : 195
    Points
    195
    Par défaut
    Si on est connecté sous root et qu'on veut faire la manip pour un autre user, il faut faire:
    set password for 'user'@'localhost' = OLD_PASSWORD("pass");
    et ça fonctionne (localhost est un exemple).
    Voilà, je fais remonter ce message de loin mais si ça peut servir à quelqu'un...
    A+
    IoT CC3200, ESP8266
    8051, ARM Cortex-M (forever)/Cortex A (TI, Silabs, NXP), FPGA, Bare Metal Raspberry-PI programming
    VHDL-ALTERA-XILINX

  13. #13
    Membre régulier
    Inscrit en
    Septembre 2002
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Points : 120
    Points
    120
    Par défaut
    C'est vrai ! Merci !

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

Discussions similaires

  1. Curtime - heure du serveur mysql
    Par Kath dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/04/2006, 13h09
  2. visualiser les connection a un serveur mysql
    Par Thunder_nico dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2004, 13h15
  3. Paramétrer le nombre de connexion sur mon serveur Mysql
    Par Zerga dans le forum Installation
    Réponses: 2
    Dernier message: 12/12/2003, 19h21
  4. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28
  5. Accès impossible au serveur MySQL
    Par aliasjcdenton dans le forum Installation
    Réponses: 3
    Dernier message: 19/05/2003, 17h11

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