Menu

Problème de connexion à la base de données MySql sur server Wamp [Résolu/Fermé]

Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
- - Dernière réponse : Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
- 20 mars 2017 à 18:21
Bonjour,

mon application c# codée avec VS 2012 (avec MySql.Data.dll) doit se connecter à une bdd MySql sur Wamp 3.0.6 mais j'obtiens systématiquement cette erreur :

"Authentication to host '127.0.0.1' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'localhost' (using password: NO)"

J'ai eu beau essayer avec différents utilisateurs qui ont les privilèges, les deux type de mot de passe, et je peux me connecter par l'interface phpMyAdmin, mais avec l'appli en c# ça ne passe pas.

Je pense que le problème vient de l'autentification, car vu le message la connexion au serveur semble Ok.

J'ai cherché sur le net, j'ai visionné des tutos qui m'ont fait modifier plusieurs fichiers de conf apache en mettant "Allow from all", mais ça n'a rien changé.

Voici le code en résumé :


MySqlConnection theSqlConnection = null;

string serveurName = "127.0.0.1";
string dataBase = "maBase";
string userId = "root";
string userPassword = "";

string connectionstring = "SERVER=" + serverName + ";DATABASE=" + dataBase + ";UID=" + userId + ";PASSWORD=" + userPassword;

theSqlConnection = new MySqlConnection(connectionstring);

theSqlConnection.Open();


Pourriez vous m'aider s'il vous plait?
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1
1
Merci
Bonjour jordane et merci de bien vouloir m'aider.

Alors root est localhost mais les autres users que j'ai testé ont % pour certains, donc à priori ça ne vient pas de là.

Pour ce que tu me recommande de faire ensuite, peux tu être plus précis s'il te plait, comment dois je modifier précisément my.ini ?
;skip-networking

; Disable Federated by default
skip-federated


et bind-address?


par ailleurs, si ça peut aider à résoudre le problème :
je dois aussi me connecter à cette même base de données par l'intermédiaire d'un site web php et voici ce que j'obtiens avec chrome :

( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)' in C:\wamp64\www\...etc on line 30
( ! ) PDOException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) in C:\wamp64\www\...etc on line 30

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 46796 internautes nous ont dit merci ce mois-ci

jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 -
par ailleurs, si ça peut aider à résoudre le problème :
je dois aussi me connecter à cette même base de données par l'intermédiaire d'un site web php

Le site web se trouve sur le même serveur ?
As tu essayé avec autre chose que ROOT ?
Quel est le code de connexion que tu as utilisé ?
Le user (autre que root) que tu as/vas essayer ... a-til les droits sur le base ?
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666
0
Merci
Bonjour,

Avant tout... peux tu vérifier que le USER mysql que tu utilises (ici "root" ) ait bien l'autorisation de se connecter depuis n'importe (%) où (et pas seulement depuis le localhost (le pc qui héberges mysql))
Il est d'ailleurs conseillé de créer un USER spécifique pour ton application au lieu d'utiliser le "root".

Ensuite vérifie les options skip-networking et bind-address

L'option skip-networking du serveur est activée (au démarrage ou dans le fichier de configuration my.ini/my.cnf) et empêche les connexions TCP/IP venant de l'extérieur.


Désactivez également l'option bind-address 127.0.0.1.


Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1
0
Merci
oui le site web se trouve sur le même serveur wamp (en local)
oui j'ai essayé avec d'autres que root, qui ont accès et privilèges sur la base

concernant le code de connexion , voici pour le site web php :
(singleton)


class PdoGsb
{

private static $serveur='mysql:host=localhost';
private static $bdd='dbname=gsb';
private static $user='root' ;
private static $mdp='' ;
private static $monPdo;
private static $monPdoGsb=null;

private function __construct()
{
PdoGsb::$monPdo = new PDO(PdoGsb::$serveur.';'.PdoGsb::$bdd, PdoGsb::$user, PdoGsb::$mdp);
PdoGsb::$monPdo->query("SET CHARACTER SET utf8");
}

public function _destruct()
{
PdoGsb::$monPdo = null;
}

public static function getPdoGsb()
{
if(PdoGsb::$monPdoGsb==null)
{
PdoGsb::$monPdoGsb= new PdoGsb();
}
return PdoGsb::$monPdoGsb;
}
}

Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1
0
Merci
je n'ai pas encore touché à my.ini , je ne sais pas exactement ce que tu suggère de modifier
jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 -
ce qui m'étonne c'est que nous dis que tu parviens à accéder à phpmyadmin...
Donc si la connexion (depuis ta page web commençons par là...) ne fonctionne pas c'est que tu as une erreur :
- Soit dans le login/password
- Soit un problème de droits (qui ne semble pas être le cas vu que tu accèdes à phpmyadmin...)
- Soit dans le nom de la bdd (attention à bien respecter majuscules et minuscules )

Tu peux éventuellement essayer de changer dans ta variable $serveur le "localhost" par l'ip : 127.0.0.1

Bien etendu, toute modifications apportée aux fichiers apache ou mysql ( comme le php.ini) nécessite systématiquement un reboot des services ... Tu as bien arrêté puis relancé les services de ton wamp ?
Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1 -
-oui j'ai pourtant relancé
-les identifiants/passwords sont corrects
-j'ai remplacé par l'ip mais ça ne change rien comme pour l'appli c#

j'ai de l'expérience avec le couple VB.net / SQL Server où je savais faire, mais là avec Wamp MySql je débute
sans trop savoir je dirais que le problème se situe dans les config du serveur par rapport aux connexions "tierces" (locales ou non), mais je ne sais pas quoi modifier précisément
jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 > Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
-
En général je créé le même user deux fois.
Une fois en '%' et une fois en 'localhost'.
Ce qui me gène .. c'est que ton user ne fonctionne même pas en PDO depuis ta page web..... (pourtant hébergée sur le même serveur...).
Tu n'as pas modifié le port mysql à utiliser pour la connexion ? "3306" ?

A la limite, pourrais tu installer un logiciel comme heidisql et essayer de te connecter à ta bdd avec ? ( en testant le compte root ... mais aussi avec un autre user )
http://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql
Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1 -
ah si j'ai mis le port 3307 parce que 3306 est occupé par un service qui s'appelle......MySQL...

qu'est ce que ça signifie?
jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 > Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
-
3306.. c'est le port par défaut utilisé par la bdd mysql pour se connecter .... (comme le port 80 est le port utilisé par défaut par apache pour les sites web ...).
Donc il faut que ton serveur soit configuré sur le même port que celui que tu utilises pour le contacter depuis tes "applications". (ou inversement.... )
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1
0
Merci
alors avec 3306 et alors que les services sont au vert il n'y a aucune connexion qui passe, même pas phpMyAdmin ni heidisql

alors qu'avec 3307 ça passe avec phpmyadmin, heidisql (mais ni l'applic# ni le site php comme on a vu depuis le début)
jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 > jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
-
NB: sachant que pour toi .. le port sera 3307 et non 3306 !
jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 > jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
-
Si ça ne fonctionne toujours pas ... pourrais tu nous montrer ce que tu as dans ton fichier my.ini concernant le port ?

par exemple :

[mysqld]
port = 3306
Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1 -
tout fonctionne ! !
c'était bien le port qu'il fallait spécifier dans toutes les chaines de connexion vu que je l'avais changé. maintenant l'appli c# et le site web php parviennent à se connecter à la base de données !

merci beaucoup de ton aide !


après il ne vaut pas mieux que j'essaye de revenir "à la normale" pour les ports à l'occasion?

le port 80 est occupé par Microsoft IIS 7.5
le port 3306 par MySQL
jordane45
Messages postés
25823
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
26 juin 2019
1666 > Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
-
Non tu peux laisser comme ça.
Le tout c'est d'avoir le port "configurable" dans tes applis au même titre que le user ou le host ....
Comme ça tu pourras l'installer n'importe où.
Adriano87
Messages postés
15
Date d'inscription
jeudi 22 septembre 2016
Statut
Membre
Dernière intervention
25 avril 2017
1 -
ok et ben merci beaucoup !