Problème de connexion MySql / C

Résolu/Fermé
Evanouache - Modifié le 26 juil. 2020 à 18:17
 Evanouache - 27 juil. 2020 à 19:06
Bonjour à tous !

Je suis actuellement encore en formation dans l'AgTech et débute tout juste dans la gestion de base de données SQL. Cela fait quelques jours que j'essaie de résoudre un problème de connexion entre un programme en langage C et ma base de donnée MySql en local.

Voici mon code en langage C :


#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#include <winsock.h>
#include <windows.h>
#include <MYSQL/mysql.h>


int main(int argc, char *argv[])
{

MYSQL *mysql;
mysql = mysql_init(NULL);
mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "");

mysql_real_connect(mysql,"127.0.0.1","root","*********","data_test",0,NULL,0);

mysql_close(mysql);

}


J'ai simplifier au maximum le programme pour l'afficher ici afin qu'il soit claire pour vous mais j'ai bien vérifier que c'était la connexion au serveur qui ne fonctionnait pas.


Ce programme semble fonctionner parfaitement et je n'ai aucun message d'erreur mais, pour autant je n'arrive pas à me connecter à ma base de donnée.
Je gère ma bdd avec Mysql Workbench et je n'ai aucun problème à me connecter à partir de là.
Les identifiant, mdp etc... Sont bon, je les ais vérifier des dixaines de fois. De plus, j'arrive à me connecter à la bdd avec ces paramètres lorsque j'utilise un langage en python.

Je ne comprend simplement pas du tout pourquoi je n'arrive pas à me connecter en passant par ce programme.

Je remercie par avance pour les conseils que vous me suggérerez.

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
Modifié le 26 juil. 2020 à 20:00
Bonjour,

Déjà, lorsque tu postes du code sur le forum, tu dois utiliser les balises de code.
Explications à lire entièrement disponibles ici : .
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, je ne fais pas de C, mais je pense qu'en ajoutant une gestion d'erreur tu devrais y voir plus clair
int main(int argc, char *argv[])
{
  MYSQL *mysql;

  /* Initialiser la structure MySQL */
   if ((pMysql = mysql_init(NULL)) == NULL)
  {
    fprintf(stderr, "mysql_init(): %s\n", mysql_error(pMysql)); return -1;
  }

  mysql_options(pMysql , MYSQL_READ_DEFAULT_GROUP, "");

  /* Se connecter a base de donnees */
  if (mysql_real_connect(pMysql ,"127.0.0.1","root","*********","data_test",0,NULL,0) == NULL)
  {
     fprintf(stderr, "mysql_real_connect(): %s\n", mysql_error(pMysql));  mysql_close(pMysql); 
     return -1;
  }


1
Bonjour !

Excusez moi de ne répondre que maintenant mais je n'ai pas eu le temps ce matin.
J'ai finalement réussi à résoudre le problème juste avant de partir bosser. En faite, j'avoue n'avoir réalisé le mysql_error qu'uniquement ce matin, je n'y avait pas pensé avant. ^^'

Il s'agissait d'une erreur liée au mode de chiffrement de la connexion au serveur. Tout est expliqué ici :
https://www.journaldunet.fr/web-tech/developpement/1440902-mysql-resoudre-l-erreur-authentication-plugin-caching-sha2-password-cannot-be-loaded/

Voilà voilà, le sujet étant résolut, je vous remercie pour la réponse que vous m'avez apportée :)

Bonne continuation tout le monde !
0