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++ Discussion :

C++ et connection mysql à distance


Sujet :

C++

  1. #1
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut C++ et connection mysql à distance
    Bonsoir,

    J'ai une archiecture comme suit :

    Environnement de developpement Visual C++ 2008 express sur Vista
    Serveur mysql installé sur centos à distance.

    Je m'embrouille dans les installations de librairie mysql++.

    Dans Outils->Options->Projets et solutions->Répertoires de VC++
    Ensuite je choisis FichiersInclude et là je mets le path des .h

    Mais aprés je suis perdu

    Où puis je trouver les libs à inclure dans le path FichiersBibliotheque ?

    Quand je compile, il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1>c:\mysql++\include\common.h(124) : 
    fatal error C1083: Impossible d'ouvrir le fichier include*: 'mysql_version.h'*: No such file or directory
    Ce fichier est présent sur le serveur distant...

    Comment configurer cet architecture pour que je puisse enfin me connecter avec mysql... ?

    Merci de m'éclairer sur mon problème

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Tu as installé le SDK MySQL sur ta machine de développement ou bien tu as fait une copie des fichier à la "sauvage" ?
    http://tangentsoft.net/mysql++/
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    j'ai modifié dans le mysql++.bkl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <set var="MYSQL_WIN_DIR">
            C:\MySQL++
        </set>
    et j'ai ensuite lancer le install.hta et il a installé les .h dans c:/mysql++/include

    mais je n'ai toujours pas de lien avec le serveur mysql...

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    j'ai refait l'installation et maintenant j'ai 3 erreurs :

    error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'fd'
    error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque*: C++ ne prend pas en charge int par défaut
    sur la même ligne...

    je vais continuer de chercher. Merci à vous

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    ça evolue plutot bien...

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #include "windows.h"
    #include "iostream"
    #include "mysql.h"
     
     
     
     
    void requete(MYSQL *conn) 
    { 
        MYSQL_RES *result; 
        MYSQL_ROW elementsColonne; 
        unsigned int nbColonnes,i;
     
    	printf("%s",conn) ;
    	system("pause") ;
     
       /* if (mysql_query(conn,"SELECT * FROM table")) 
        { 
            printf("Erreur dans la requête\n"); 
            return; 
        } 
        else // requête bonne, traitons les données qu'elle renvoit 
        { 
            result = mysql_store_result(conn); 
            if (result != NULL) // MySQL peut extraire des résultats 
            { 
                nbColonnes = mysql_num_fields(result); 
      
                // récupère les enregistrements un par un 
                while ((elementsColonne = mysql_fetch_row(result))) 
                { 
                    for (i = 0; i < nbColonnes; i++) 
                        printf("%s\t", (elementsColonne[i] != NULL) ? elementsColonne[i] : "NULL"); 
                    printf("\n"); 
                } 
                // on libère la mémoire prise pour les résultats 
                mysql_free_result(result);
                printf("Requete reussi\n"); 
            } 
            else 
                printf("Aucun résultat à la requête !\n"); 
        }*/ 
    }
     
     
    int main() 
    { 
        MYSQL *conn; 
     
        // initialisation 
    	conn = mysql_init(NULL);
        if(conn == NULL) 
        { 
            printf("Erreur d'initialisation\n");
            system("PAUSE");
            return 1; 
        } 
      //printf("Détails sur le client MySQL : %s\n", mysql_get_client_info());
      //system("pause") ;
        // connexion au serveur (ici, en local) 
     
      if((conn=mysql_real_connect(conn,"192.168.1.4","login","passwd","bdd",3306,NULL,0))) 
        { 
            printf("Erreur de connexion\n");
            printf("Erreur : %s\n", mysql_error(conn));
            system("PAUSE");
            return 1; 
        } 
     
        // on lance la requête 
    	printf("%s",conn) ;
    	system("pause") ;
    	requete(conn); 
     
        // on ferme la connexion au serveur MySQL 
        mysql_close(conn);
     
        printf("Connexion reussie\n");
        system("PAUSE");
        return 0;
     
    }
    Mon souci est que le conn me renvoie une valeur NULL aprés le mysql_real_connect ce qui fait que j'envoie ce conn à la fonction requete avec cette valeur d'où l'erreur mémoire de la fonction mysql_query

    Comment cela se fait il que je récupére une valeur NULL ?

  6. #6
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    je suis sur un autre bout de code :

    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
    49
     
    #include <stdio.h>
    #include <mysql.h>
    #include <stdarg.h>
    #include <stdlib.h>
    #include <time.h>
    #include <conio.h>
     
     
    void main (void)
    { // déclaration pour la lecture ecriture création des fichier textes
     
     
     // déclaration des variables nécessaire à la bdd
        MYSQL *sql;    //gestionnaire de connexion
        MYSQL *mysql; //gestionnaire d'initialisation
        MYSQL_RES *myRES = NULL;
        MYSQL_ROW myROW = NULL;
        int iResult = 0 ;
     
     
    //-----Mise en place du lien avec la base sql------------------------------------------------------------
     
        mysql=mysql_init(0); //la fonction mysql_init appelle mysql_library_init quand il n'y a pas de multi thread.
     
     
        if(mysql!=0){
           // printf("librairies initialisees\n");
            //printf("objet alloue\n");
     
    		sql = mysql_real_connect(mysql,"192.168.1.4","login","passwd","bdd",3306,NULL,0);
    	//	
     
    		printf("%d\n",sql);
    		system("pause") ;
     
            if(sql!=0){
                printf("base connecté\n");
                iResult=mysql_query(sql, "SELECT * FROM panier");  
    			system("pause");
            }
            else{
                printf("connexion echouee\n");
    			system("pause");
            }
        }
     
        mysql_close(mysql);
    }

    mais mysql_real_connect me renvoie NULL !

    Je ne vois pas où est le probleme ! Si quelqu'un pouvait m'aider, merci.

  7. #7
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    salut,

    fait mysql_error(mysql) à la place du printf.
    Ca peut aider pour connaitre l'origine du pb.

  8. #8
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    bien vu merci !

    l'erreur est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Host '192.168.1.5' is not allowed to connect to server mysql
    Où dois je modifier quelque chose pour que je puisse me connecter ?

    Merci en tout cas !

  9. #9
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Du nouveau...

    Maintenant j'ai un message qui me dit qu'il faut que j'upgrade la version client mysql

  10. #10
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    mon mysql_version.h a pour version 3.23.32
    et mon serveur mysql distant est de version 5.0.41

    J'ai pas trouvé de version autre que celle ci pour c++ ... quelqu'un a eu ce genre de soucis ?


    J'ai installé la 5.0.41 sur le poste client et j'ai toujours ce même message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Client does not support authentication protocol requested by server; consider up
    grading MySQL client

  11. #11
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Après quelques recherches, un probleme de hash de password serait à l'origine de mon souci. J'ai modifié la maniere de me connecter et ça fonctionne.

    Merci pour l'aide

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

Discussions similaires

  1. Connection MySql à distance ?
    Par swiggy dans le forum Pentaho
    Réponses: 0
    Dernier message: 08/02/2010, 15h30
  2. Connection MySql Administrator à distance
    Par diabli73 dans le forum Administration
    Réponses: 1
    Dernier message: 07/07/2009, 11h12
  3. Me connecter à une BD mysql distance (avec mysql_Connecter)
    Par beegees dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 10/06/2009, 15h27
  4. problème de connection mysql par tcp/ip
    Par leroyphil dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2003, 18h27
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

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