Se connecter au serveur Mysql - PHP - Programmation
Marsh Posté le 26-09-2006 à 17:11:47
J'ai creer un utilisateur avec un mot de passe dans la table user.
Si je fait: mysql_connect("localhost","nomUtilisateur","" ) or die ("La connexion a la base est impossible" ); Ca passe
Mais si je fais mysql_connect("localhost","nomUtilisateur","motDePasse" ) or die ("La connexion a la base est impossible" ); Ca passe pas alors le le mot de passe est motDePasse
Marsh Posté le 26-09-2006 à 17:23:32
La magie des conections anonyme. Alias la magie de l'existance d'un utilisateur nomé % pour la machine locale. (voir table mysql.user , la ligne contenant "%" dans la colonne "user" )
Marsh Posté le 26-09-2006 à 18:44:57
Faut recharger mysql si tu apportes une modif aux tables de mysql
Par contre tu avais créé ton utilisateur 'nom' ou pas avant ton premier test
Marsh Posté le 26-09-2006 à 20:27:21
pas au tout debut mais j ai refais les mêmes tests en ayant creer l utilisateur
Marsh Posté le 26-09-2006 à 21:05:44
Il doit y avoir quelque chose ailleurs dans une autre table genre host...
Je répète que pour qu'une modification soit prise en compte il faut recharger mysql!
Et réussir à établir une connexion, même si je suis d'accord que ça devrait pas tout court, c'est pas pouvoir en faire quelque chose ensuite
Marsh Posté le 27-09-2006 à 14:03:26
Bien maintenant seul root peut se connecter au serveur Mysql, il n'accepte plus aucun autre utilisateur
Marsh Posté le 27-09-2006 à 14:21:25
Qu'as tu fait
Quels sont les messages d'erreur
Tu as bien tout comme il faut dans la table user
Postes tout ça qu'on y voit plus clair
Marsh Posté le 28-09-2006 à 14:14:46
Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv
Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections
localhost root Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y [BLOB - 0 Octets] [BLOB - 0 Octets] [BLOB - 0 Octets] 0 0 0
localhost nom mdp Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y N Y Y Y Y [BLOB - 0 Octets] [BLOB - 0 Octets] [BLOB - 0 Octets] 0 0 0
Marsh Posté le 28-09-2006 à 15:06:10
T'as pas de message d'erreur mysql a bien été redémarré
T'as rien dans les autres tables (host, db) et t'essaye bien de te connecter depuis 'localhost'
Marsh Posté le 28-09-2006 à 17:25:30
Dans la table host j'avais mis un enregistrement.
localhost AdresseIP Y Y Y Y Y Y Y Y Y Y Y
Et dans la table db j'ai rajouté un enregistrement
% test Y Y Y Y Y Y N Y Y Y Y Y
Modifier Effacer % test\_% Y Y Y Y Y Y N Y Y Y Y Y
Modifier Effacer localhost AdresseIP nom Y Y Y Y Y Y N Y Y Y Y Y
Marsh Posté le 29-09-2006 à 15:38:21
et donc
Marsh Posté le 29-09-2006 à 20:26:07
Bon là, j'ai laisser dans la table db les enregistrements par défaut et virer l'enregistrment que j'avais mis dans la table host. Le mysqlconnect ne marche qu'avec l'utilisateur root
Marsh Posté le 29-09-2006 à 21:24:07
Mais avec ou sans mdp
Et pour l'autre ça te dit quoi quand tu essayes quoi
Marsh Posté le 30-09-2006 à 09:48:59
L'utilisateur Root n'a pas de mot de passe. Pour l'autre ca me met le message d'erreur que j'ai mis dans le "or die"
mysql_connect("localhost","root","" ) or die ("connexion impossible" );
Marsh Posté le 30-09-2006 à 13:48:20
marc90 > Ca ne te dirais pas d'afficher le message d'erreur renvoyé par mysql plustôt qu'un message bateau qu n'explique rien?
Marsh Posté le 30-09-2006 à 14:16:55
Voici la ligne de connexion
$id = mysql_connect("localhost","nom","mdp" ) or die ("connexion impossible" );
Comme la connexion ne peut être établie ca retourne le message d'erreur de die.
On dirait que seul l'utilisateur root peut se connecter au serveur mysql
Marsh Posté le 30-09-2006 à 15:04:19
Access denied for user 'nom'@'localhost' (using password: YES)
Marsh Posté le 30-09-2006 à 16:00:19
rassure moi. Dans la base de donnée, le mot de passe est bien crypté.
S'il est en clair, alors il ne faut pas chercher plus loin (soit t'utilise les requettes dédiés de mysql, soit tu changes le mot de passe avec la fonction "password()" et tu demande ensuite à prendre en compte le changement : requette "flush privileges" )
Marsh Posté le 30-09-2006 à 16:16:36
Dac le problème est là, le mot de passe est en clair dans la base, j'utilise phpMyAdmin. Même pas penser à ca. Merci
Marsh Posté le 30-09-2006 à 18:31:32
marc90 a écrit : Dac le problème est là, le mot de passe est en clair dans la base, j'utilise phpMyAdmin. Même pas penser à ca. Merci |
Tellement évident qu'on y pense pas
Marsh Posté le 26-09-2006 à 17:00:06
Petit problème, dans ma base MySql j'ai l'utilisateur root et j'ai aps mis de mot de passe.
Si je fais: mysql_connect("localhost","root","" ) or die ("La connexion a la base est impossible" );
la connexion est établie.
Mais si je fais: mysql_connect("localhost","nom","" ) or die ("La connexion a la base est impossible" );
la connexion est aussi établie alors qu'il n'existe pas d'utilisateur nom
Si par contre je met un mot de passe: mysql_connect("localhost","nom","mdp" )
la connexion n'est pas établie