1

Bonjour,
Je suis actuellement en stage, j'effectue des études d'ingénieurs en télécommunications. Cependant mon stage à une porté largement informatique, et je dois m'atteler à faire une base de données, ce qui n'est pas du tout mon milieu.
Alors j'ai tout d'abord installer easyphp 5.3.2i. (avec mySQL intégré)
J'ai ensuite eu quelques difficultés à accéder au serveur SQL par l'invité de commandes, mais après plusieurs tentatives, j'ai enfin réussi à changer le mot de passe et à me connecter directement.
Cependant, même si cela marche par l'invité de commande windows, dès que je veux passer par "Administration - Administrer MySQL" j'arrive sur une page d'erreur :
"#1045 - Access denied for user 'root'@'localhost' (using password: NO) phpMyAdmin a tenté de se connecter au serveur MySQL, et le serveur a rejeté la connexion. Veuillez vérifier les valeurs de "host", "username" et "password" dans votre configuration et vous assurer qu'elles correspondent aux informations fournies par l'administrateur du serveur MySQL. "
Je suis donc aller vérifier dans Paramètres MySQL et il me dit :
Serveur 'localhost'
utilisateur 'root'
mdp (pas de mot de passe, laisser vide)

Néanmoins j'ai fait plusieurs manipulations trouvés sur différents forum :

Ouvrez la console MySql,

Après avoir tapé Entrée et avoir la commande mysql> :

Il est utile de commencer par attribuer le nouveau mot de passe via la commande :

SET PASSWORD FOR root@localhost=PASSWORD(' monmotdepasse ');

Ensuite il n’est pas inutile de réattribuer les droits de super utilisateur via la commande :

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost
-> IDENTIFIED BY ' monmotdepasse ' WITH GRANT OPTION;

Bien évidemment il faut insérer les noms de host et de compte user par défaut avec le mot de passe mis en place dans le fichier ‘php.ini’, au niveau suivant :

; Default host for mysql_connect() (doesn't apply in safe mode).
mysqli.default_host ='localhost'

; Default user for mysql_connect() (doesn't apply in safe mode).
mysqli.default_user ='root'

; Default password for mysqli_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysqli.default_pw ='monmotdepasse'

Et il ne reste plus qu’à effectuer l’implantation des noms de host et de compte user par défaut avec le mot de passe dans le fichier ‘config.inc.php’ aux lignes suivantes:

$cfg['Servers'][$i]['host']= 'localhost';

$cfg['Servers'][$i]['user'] = 'root';

$cfg['Servers'][$i]['password']= 'monmotdepasse';


Mais rien n'y fait... Si quelqu'un a une idée, il serait vraiment mon sauveur !
Merci par avance!

2

Par défaut le compte root n'a pas de mot de passe. C'est comme ça que tu aurais du te connecter, sans utiliser l'invite de commandes. Qui plus est, avec un easyPHP, tu n'as vraiment rien à configurer. (Et on te fout des outils qui marchent bien comme phpMyAdmin, le tout pré-configuré pour que ça marche, c'est pas pour aller bidouiller à côté dans la ligne de commande...)
Qui plus est, mettre un mot de passe sur un environnement de dev en local*, qui doit normalement être protégé par un pare-feu, c'est sans-intérêt, et à éviter tant que tu ne comprends pas ce que tu fais.
Ce que tu aurais du faire si tu tenais tant à mettre un mot de passe, c'est utiliser phpMyAdmin tel quel, et créer ensuite un nouveau compte (qui ne soit pas le compte "root") pour accéder à la base dans ton code php. Le fait que le compte root ne soit pas protégé n'est pas important puisque personne d'autre ne peut se connecter au serveur mysql.
D'autre part, inclure le mot de passe mysql dans le php.ini est totalement contreproductif. (autant ne pas mettre de mot de passe dans ce cas hein -_-)

Bref, ton problème est que tu as essayé de faire quelque chose dont tu n'avais probablement pas besoin sans comprendre pourquoi tu voulais le faire ni comment tu devais le faire.
Ma suggestion reste de faire sans mot de passe (tant que ça reste en local...), mais sinon tout aurait tu fonctionner si tu avais suivi à la lettre les instructions que tu as cité. (Excepté la partie sur php.ini)
As-tu pensé à faire un "FLUSH PRIVILEGES" et/ou à redémarrer le serveur mysql ?
Quel est le résultat de la requête "SELECT * FROM user" dans la base "mysql" ?
As-tu pensé à faire des tests avec un fichier PHP bidon avant de te plonger dans les fichiers de config sans trop savoir ? La ligne de code à éxécuter est "<?php mysql_connect('localhost', 'root', '' /* mot de passe ici */) ?>". Si ça se connecte sans afficher d'erreur alors c'est que ta connexion entre php et mysql est correcte... (Et donc les conf php et mysql sont ok)



* Car bien sûr on n'utilise jamais EasyPHP pour faire tourner un vrai serveur.
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

3

Bon tout d'abord, tu as tout a fait raison, je pars un peu dans tous les sens sans bien savoir ce que je fais...
En cours, on nous a juste appris l'aspect requète de SQL, jamais trop comment creer une base, ou l'administrer etc.
Alors je savais que le compte root n'a pas de mot de passe, mais dès l'installation de easyphp, quand j'ai essayer l'option administrer, il n'a pas voulu se connecter, c'est là que j'ai décidé d'aller dans l'invité de commande qui m'a dit que je ne pouvais pas me connecter sans mot de passe... A mon grand étonnement, vu que je vennais de l'installer, et que je n'avais pas encore défini de mot de passe!! J'ai ainsi suivi un tutoriel expliquant comment changer le mot de passe. Ensuite quand j'ai pu me connecter par l'invité de commande grâce à ça, j'ai tenté la manip décrite juste au dessus, qui n'a malheureusement pas marché.

Dans php.ini, je suis tout a fait d'accord avec toi, cependant je suis tellement desespéré, que j'ai même tenté ça.
FLUSH PRIVILEGES, j'ai tenté aussi, sans grand succès.
Le resultat de SELECT * FROM user dans la base mysql donne cela :

mysql> USE mysql
Database changed
mysql> SELECT * FROM user
-> ;
+-----------+------+-------------------------------------------+-------------+--
-----------+-------------+-------------+-------------+-----------+-------------+
---------------+--------------+-----------+------------+-----------------+------
------+------------+--------------+------------+-----------------------+--------
----------+--------------+-----------------+------------------+-----------------
-+----------------+---------------------+--------------------+------------------
+------------+--------------+----------+------------+-------------+-------------
-+---------------+-------------+-----------------+----------------------+
| Host | User | Password | Select_priv | I
nsert_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_ta
bles_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv
| Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv
| Event_priv | Trigger_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject
| max_questions | max_updates | max_connections | max_user_connections |
+-----------+------+-------------------------------------------+-------------+--
-----------+-------------+-------------+-------------+-----------+-------------+
---------------+--------------+-----------+------------+-----------------+------
------+------------+--------------+------------+-----------------------+--------
----------+--------------+-----------------+------------------+-----------------
-+----------------+---------------------+--------------------+------------------
+------------+--------------+----------+------------+-------------+-------------
-+---------------+-------------+-----------------+----------------------+
| localhost | root | "ici ca donnais * et un long code en HEXADECIMAL que je suppose être un mdp" | Y | Y
| Y | Y | Y | Y | Y |
Y | Y | Y | Y | Y | Y
| Y | Y | Y | Y | Y
| Y | Y | Y | Y
| Y | Y | Y | Y
| Y | Y | | | |
| 0 | 0 | 0 | 0 |
+-----------+------+-------------------------------------------+-------------+--
-----------+-------------+-------------+-------------+-----------+-------------+
---------------+--------------+-----------+------------+-----------------+------
------+------------+--------------+------------+-----------------------+--------
----------+--------------+-----------------+------------------+-----------------
-+----------------+---------------------+--------------------+------------------
+------------+--------------+----------+------------+-------------+-------------
-+---------------+-------------+-----------------+----------------------+
1 row in set (0.00 sec)


Et qu'est censé donner comme réponse cette ligne de code : <?php mysql_connect('localhost', 'root', '' /* mot de passe ici */) ?>
Car j'avais tenté un fichier php tout basique affichant l'heure, et celui-ci a fonctionné !

Merci pour le temps que tu m'accordes!

4

je viens d'ailleurs de ré-installer easyphp en ayant pris soin de tout désintaller auparavant.
J'essaye donc de directement aller administrer mysql, réponse : #1045 - Access denied for user 'root'@'localhost' (using password: NO)
J'essaye donc de retourner sur l'invité de commande et de me connecter au compte root qui devrait n'avoir aucun password, et la rebellote :


C:\Program Files\EasyPHP-5.3.2i\mysql\bin>mysql -u root
ERROR 1045 (28000): AccÞs refusÚ pour l'utilisateur: 'root'@'@localhost' (mot de
passe: OUI)

Alors qu'il n'y a logiquement aucun mot de passe...
Je desespère complètement!
PS : peut-il y avoir un problème de Firewall? Car je n'ai pas accès aux exeptions, et si je veux pouvoir les modifier pour laisser passer je ne sais quoi, il faut que j'appel le service informatique, donc j'aimerais savoir si c'est vraiment utile de les déranger.

5

Normalement le firewall ne bloque jamais les connexions vers localhost... Si tu as un accès refusé c'est que la connexion s'établit bien. Enfin, logiquement ça devrait être le cas. tongue
Sinon, la ligne de commande pour se connecter avec mot de passe est "mysql -u root -p" (puis taper le mot de passe quand demandé)
En tout cas, le mot de passe a bien le bon format dans la BDD et tu n'as qu'un seul utilisateur, donc pas de risque de connexions indésirables.
Teste donc la connexion au serveur par toi même comme je l'ai dit.
Dans un fichier .php: <?php mysql_connect('localhost', 'root', '' /* mot de passe ici */) or die(mysql_error()) ?>
(Met un mot de passe entre les '' là où il faut si tu as un mot de passe)
Si le script s'exécute sans erreur, alors la connexion est réussie, sinon, tu devrais avoir une erreur affichée par PHP. (similaire à celle que tu as obtenue auparavant)
Sinon, tu peux vérifier les options des extensions mysql et mysqli dans ton php.ini. Normalement, la plupart devraient être vides. (Pour info: le port standard de mysql est sensé être le 3306)
Enfin, c'est quand même étrange que EasyPHP n'ait pas fonctionné directement. Tu ne crois pas que tu aurais pu expliquer ça dès le début plutôt que de définir des mots de passe & compagnie alors que ça ne fonctionnait même pas sans mot de passe ? tongue
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

6

Bien en fait, je tape cette commande dans un notepad, que j'enregistre en .php, je le place dans le dossier www de easyphp, je vais dans le gestionnaire de easyphp, puis je le lance de la dans une fenetre internet explorer... Ca m'annonce juste terminé, mais c'est une page blanche, c'est ça pour toi aucune erreur? smile

7

Ben essaye de taper <?php } ?> dans le fichier à la place et tu devrais voir une erreur... Logiquement. ^^
(Normalement EasyPHP doit être configuré pour afficher les erreurs de PHP si ça n'a pas changé)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

8

Parse error: syntax error, unexpected '}' in C:\Program Files\EasyPHP-5.3.2i\www\Essais\essais_connection.php on line 1

Ca ressemble plutot a une erreur ça hein? ^^

9

Ouep. Conclusion ton mysql semble marcher, non ? ^^
Essaye d'enchaîner sur une requête SQL: <?php mysql_connect('localhost', 'root', '' /* mot de passe ici */) or die(mysql_error()); mysql_select_db(''); // Met le nom de la base de données ici. $r = mysql_query(''); // Ecris une requête là. $row = mysql_fetch_assoc($r); print_r($row) ?>Si tout va bien ça devrait t'afficher le résultat de la requête. (la première ligne en tout cas)
Essaye avec la base 'mysql' et 'SELECT * FROM user' par exemple...

A priori le problème viendrait de ta conf. phpmyadmin en tout cas...
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

10

Array ( [Host] => localhost [User] => root [Password] => [Select_priv] => Y [Insert_priv] => Y [Update_priv] => Y [Delete_priv] => Y [Create_priv] => Y [Drop_priv] => Y [Reload_priv] => Y [Shutdown_priv] => Y [Process_priv] => Y [File_priv] => Y [Grant_priv] => Y [References_priv] => Y [Index_priv] => Y [Alter_priv] => Y [Show_db_priv] => Y [Super_priv] => Y [Create_tmp_table_priv] => Y [Lock_tables_priv] => Y [Execute_priv] => Y [Repl_slave_priv] => Y [Repl_client_priv] => Y [Create_view_priv] => Y [Show_view_priv] => Y [Create_routine_priv] => Y [Alter_routine_priv] => Y [Create_user_priv] => Y [Event_priv] => Y [Trigger_priv] => Y [ssl_type] => [ssl_cipher] => [x509_issuer] => [x509_subject] => [max_questions] => 0 [max_updates] => 0 [max_connections] => 0 [max_user_connections] => 0 )

Voila ce que cela m'affiche, ça m'a l'air pas mal du tout! Alors pourquoi je n'arrive pas à acceder à l'administration de mysql :'(

11

Euh mon maitre de stage vient de me donner le CD du projet qu'avait fait un autre stagiaire ici à propos aussi d'une base SQL, et je remarque que qu'en tapant dans internet explorer l'adresse qu'il a laissé pour acceder a son compte phpmyadmin, ainsi que son pseudo et son mdp, bah j'arrive sur sa session les doigts ds le nez avec ses bases de données et tout......
Pourquoi ça marcherais sur un projet de l'année dernière, et moi misérable que je suis, je peux même pas en commencer un de projet snif!