Programme qui se connecte à partir d'un poste distant sous linux à un serveur mysql tournant sous windows. Testé et fonctionne très bien !
compilation :
gcc mon_prog.c -o mon_prog -L/usr/lib/mysql -lmysqlclient
*****************************************************
#include <stdio.h>
#include </usr/include/mysql/
mysql.h>
int main ( )
{
MYSQL mysql;
MYSQL_RES * resultat;
MYSQL_ROW row;
mysql_init(&mysql);
if (mysql_real_connect(&mysql,"
ip","
login","
mdp","
db",0,NULL,0)==NULL)
{
printf("Erreur lors de la connexion à la base.\nErreur: %s",mysql_error(&mysql));
exit(-1);
}
else
{
printf("connexion établie\n");
}
if (mysql_query(&mysql,"
SELECT enreg FROM table")!=0)
{
printf("requete échouée !\n");
mysql_close(&mysql);
exit(-1);
}
resultat = mysql_store_result(&mysql);
row = mysql_fetch_row(resultat);
printf("%s",row);
mysql_free_result(&mysql);
mysql_close(&mysql);
return 0;
}
ip : adresse de la machine sur laquelle tourne le serveur mysql
login : bon je pense que vous savez ce que c'est
mdp : mot de passe pareil
db : data base : base de données
SELECT enreg FROM table : requete
Problemes rencontrés et résolu:
mysql.h : il se trouve dans le paquetages
libmysql-devel sur le cd d'installation de linux
Malgrè que la compilation ne donne aucune erreur, il se peut que vous ne puissiez pas réussir a vous connecter au serveur sql. Il se peut que le serveur autorise uniquement les connexion local (localhost), il faudra alors modifié le fichier de config du serveur, cliquez droit sur l'icone easy php->configuration->mysql, vous touverai une ligne ou il y a
bind-adress-172.0.0.1, mettre un # pour le mettre en commentaire, sql va désormais accepté toutes les connexion et non seulement les connexions locale.
Une dernière chose à modifier, dans la base mysql et dans la table user, vous devrez créer un utilisateurs ayant comme host l'adresse ip de la machine avec laquelle vous allez vous connectez a la base.
Voili Voilou