begin process at 2012 05 28 22:35:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

SQL

 > 

Connexion via c++ à une base Mysql local?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Connexion via c++ à une base Mysql local?

mardi 9 novembre 2010 à 11:11:47 | Connexion via c++ à une base Mysql local?

massi723

bonjour,
J'ai une base Mysql que j'ai installé dans une machine dans le reseau local,
j'ai fait un programme C++ qui fait une connexion à la base.
ca marche sur le localhost mais j'arrive pas a se connecter à la base de données
depuis un autre poste dans le meme reseau local,
j'ai fait des modifications dans http.conf de apache(j'utilise wamp server)
mais le problème persiste.
voici une partie de mon code:

// Définitions des paramètres de connexion à la BD

#define host "192.168.1.15"//adr de la machine contenant la base
#define username "root"
#define password ""
#define database "mabase"
void main()
{

int result;
MYSQL *conn;
MYSQL_RES *res_set;
MYSQL_ROW row;
unsigned int i;
unsigned int numrows;
// Connexion à la BD
conn = mysql_init(NULL);
printf("try to connect..\n");
if (mysql_real_connect(conn, host, username, password, database,80, NULL, 0) == NULL)

{printf("error connection..\n"); getch();}
else
{...
merci de votre reponse
mardi 9 novembre 2010 à 11:43:17 | Re : Connexion via c++ à une base Mysql local?

CptPingu

Administrateur CodeS-SourceS
Vérifie que mysql soit bien accessible sur le port 80 (ou un autre port).

Que se passe-t-il si tu ping la machine ? (ping 192.168.1.15)
Arrives-tu à te connecter via le client mysql au moins ? (mysql --user="root" --password="" --host=192.168.1.15 --database=mabase --port=80 ? et --port=3306 ?)

Piste:
- Le port par défaut de mysql est 3306 et non 80.
- Vérifie que ton wamp écoute sur le bon port
- Vérifie qu'il n'y ait pas de firewall

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 9 novembre 2010 à 13:41:36 | Re : Connexion via c++ à une base Mysql local?

massi723




oui le ping passe et le firwell est désactivé,
j'ai modifié le port en 3306
mais j'ai le message "error connection.."
mardi 9 novembre 2010 à 13:47:17 | Re : Connexion via c++ à une base Mysql local?

CptPingu

Administrateur CodeS-SourceS
Avant de coder, on vérifie la connexion.
Tu as essayé, avec un client mysql, de te connecter à la base ?
(cf ligne de commande que j'ai écrite plus haut)

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 9 novembre 2010 à 13:52:18 | Re : Connexion via c++ à une base Mysql local?

massi723




Comment exécuter cette cmde,
je suis sur Windows ?
mardi 9 novembre 2010 à 14:18:25 | Re : Connexion via c++ à une base Mysql local?

CptPingu

Administrateur CodeS-SourceS
Alors je vais avoir du mal à t'aider... Je vais essayer quand même.

Soit tu ouvres un terminal (windows + r, puis tu tapes cmd). Et tu essaies.
Si ça ne fonctionne pas, alors tu télécharges un client mysql graphique sur le net (google est ton ami).

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 9 novembre 2010 à 14:46:27 | Re : Connexion via c++ à une base Mysql local?

massi723

oui on sait (win+R,exec,cmd...)
j'ai essayé mais le terminal ne connait pas la commande,
j'ai téléchargé sqlwave mais il m'indique que ma machine n'est pas autorisée à connecter à ce serveur!
comment résoudre ce problème ?
SVP j'ai besoin de ton aide
mardi 9 novembre 2010 à 15:14:20 | Re : Connexion via c++ à une base Mysql local?

CptPingu

Administrateur CodeS-SourceS
Si tu es sur d'avoir correctement configuré ton client, mais que la connexion n'est toujours pas établie, alors c'est que la configuration de ton wamp n'est pas correcte.

Vérifie dans la configuration de wamp sur quel port le serveur mysql écoute.
Dommage que tu ne sois pas sous Linux, je t'aurais aussi dit de faire un "nmap" pour tester les ports ouverts sur la machine qui sert de serveur. (Tu peux essayer de te procurer une version Windows, je crois que ça existe).

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 9 novembre 2010 à 23:06:01 | Re : Connexion via c++ à une base Mysql local?

racpp

Administrateur CodeS-SourceS
Salut,
Comme précisé par CptPingu, avant de coder, il faut commencer par vérifier que tout marche bien côté serveur et que ce dernier est accessible depuis un autre PC du réseau local. Puisque tout marche en localhost cela signifie que ton serveur MySQL fonctionne correctement. Voici quelques pistes pour Windows:
1- Sur le PC serveur, dans un invite de commandes, tape "netstat -a" pour voir tous les ports ouverts. Si le port 3306 ne figure pas dans la liste alors ton MySQL utilise un autre port. Pour connaitre le port utilisé tu peux consulter le fichier my.ini (ou my.cnf selon la version)se trouvant dans le dossier dont le chemin ressemble à ceci: C:\wamp\bin\mysql\mysql5.1.36. Dans le bloc [mysqld] de ce fichier regarde la valeur du port. Cela s'applique aussi au bloc [wampmysqld].
2- Dans certaines configurations de MySQL, l'utilisateur "root" n'est pas autorisé à se connecter depuis un PC distant pour des raisons de sécurité. Il est préférable de créer un nouvel utilisateur ("admin" par exemple) en lui assignant un mot de passe et lui donnant le droit de se connecter depuis n'importe où. Tu peux utiliser SQLWave en local sur le PC serveur pour ajouter un utilisateur après s'être connecté en tant que root. C'est la paire login+mot de passe de l'utilisateur nouvellement créé qui sera utilisée pour se connecter à ta base MySQL depuis un autre PC.
3- Dans certaines configurations de MySQL incluses dans WAMP, toutes les connexions distantes sont interdites par défaut pour des raisons de sécurité. Pour les activer, une fois toutes les phases du développement du service web terminées, on va dans le fichier my.ini cité plus haut puis on commente la ligne bind-address=127.0.0.1 en ajoutant un # au début. Un redémarrage du service MySQL est nécessaire pour la prise en compte du changement.
4- Une fois tout est vérifié côté serveur, tu pourras utiliser SQLWave (ou tout autre client MySQL) depuis le PC distant en utilisant les paramètres de connexion corrects. Si tout va bien tu pourras ensuite passer au code de ton client.
5- En ce qui concerne le code du client, il est préférable d'utiliser pour le descripteur de la connexion une structure MYSQL et non un pointeur sur cette structure. C'est précisé dans la documentation de MySQL. Ceci permet, entre autres, de récupérer les derniers codes et messages d'erreur relatifs à la connexion. Petit exemple:
Code C/C++ :
MYSQL conn;
mysql_init(&conn);
if(!mysql_real_connect(&conn,"192.168.1.15","admin","motdepasse","mabase",3306,NULL,0))
{
    printf("Failed to connect to database: Error: %s\n", mysql_error(&conn));
}
//...
mysql_close(&conn);

Ce petit bout de code affiche un message d'erreur décrivant la cause de l'échec de la connexion.
Voilà, j'espère t'avoir aidé un peu.


Cette discussion est classée dans : base, local, mysql, connexion, define


Répondre à ce message

Sujets en rapport avec ce message

PB connexion à la base mysql ... [ par Michael_Nab ] Salut ... quel est la fonction utilisé pour se connecter à la base de donnée mysql d'un serveur distant ...Merci beaucoup ... connexion distante base de données MySql en c / linux [ par Susherone ] Programme qui se connecte à partir d'un poste distant sous linux à un serveur mysql tournant sous windows. Testé et fonctionne très bien !compilation connexion à une base mysql sous linux [ par progrima ] bonsoir!!je vouderais réaliser un programme qui : lit des données d'une base access installée sous windows 2003 server et par la suite se connecte à u connexion à une base MySQL (programme en C sous linux) [ par moumoute77 ] Bonjour, j'ai une base de données MySQL avec une table ;j'utilise Wampserver (apache 2.2.11, MySQL 5.1.36). J'ai réalisé un test de connexion à ma ba connexion à une base de donnée construction d' interfaces en C++ [ par waidi ] j'ai du mal à utiliser C++ pour me connecter à une base de données et aussi pour construire des IHM. en outre je cherche à connaître les bibliothèques erreur connection avec la base [ par langy ] bonjour comment corriger l'erreur suivante: 339 C:\Dev-Cpp\include\MYSQL\mysql_com.h `SOCKET' was not declared in this scope merci de m'aider connexion une une base et c++ [ par loftiteau ] bonjour j'ai une base de données réalisées avec access 2003 et j'aimerai faire l'interface graphique avec le c++.Comment faire la connexion? Pouvez Probleme connexion base de donné VC++ 2008 [ par sed35 ] Bonjours, Je n'arrive pas a me connecter a une base de donner sous visual c++ express 2008 ou sous basic Dans l'explorateur de donner lorsque je clic Connexion de base de donnée access avec c++/cli [ par 972apprenti ] Bonjour, Je cherche le moyen d'inserer des donnée dans une table de base de donnée access avec c++, est ce que quelqu'un pourrai me donner le code,p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,250 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales