197 votes

Accès refusé pour l'utilisateur 'Root@localhost' (utilisant le mot de passe:NO)

J'essaie de faire fonctionner WordPress sur mon ordinateur de bureau Windows et il a besoin de MySQL.

J'installe tout avec Web Platform Installer qui est fourni par Microsoft. Je n'ai jamais défini de mot de passe racine pour MySQL et lors de la dernière étape de l'installation de WordPress, il est demandé un mot de passe pour le serveur MySQL.

Quel est le mot de passe par défaut pour Root (s'il y en a un) et comment le changer ?

J'ai essayé :

mysql -u root password '123'

Mais cela me montre :

Access denied for user 'root@localhost' (using password:NO)

Après cela, j'essaie :

mysql -u root -p

Cependant, il demande un mot de passe que je n'ai pas.


Mise à jour : comme Bozho l'a suggéré, j'ai procédé de la manière suivante :

  1. J'ai arrêté le service MySQL dans les services Windows

  2. Ouverture de la CMD

  3. Changement de l'emplacement en c : \program dossiers \mysql\bin

  4. Exécution de la commande ci-dessous

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. La commande s'est exécutée avec un avertissement concernant le jeu de caractères que j'ai mentionné ci-dessous

  6. Je démarre le service MySQL à partir des services Windows

  7. J'écris dans la ligne de commande

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. La ligne de commande affiche l'erreur suivante

    Access denied for user 'root@localhost' (using password:**YES**)

Comment résoudre ce problème ?

121voto

user2977819 Points 1

Pour ce type d'erreur, il suffit de définir un nouveau mot de passe pour l'utilisateur racine en tant qu'administrateur :

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Arrêter le service/daemon mysql en cours d'exécution

     [root ~]# service mysql stop   
     mysql stop/waiting
  2. Démarrez mysql sans aucun privilège en utilisant l'option suivante ; Cette option est utilisée pour démarrer et ne pas utiliser le système de privilèges de MySQL.

     [root ~]# mysqld_safe --skip-grant-tables &

A ce moment, le terminal semble s'arrêter . Il faut en rester là et utiliser le nouveau terminal pour les prochaines étapes.

  1. entrer dans l'invite de commande mysql

     [root ~]# mysql -u root
     mysql> 
  2. Corrigez les paramètres de permission de l'utilisateur racine ;

     mysql> use mysql;
     Database changed
     mysql> select * from  user;
     Empty set (0.00 sec)
     mysql> truncate table user;
     Query OK, 0 rows affected (0.00 sec)
     mysql> flush privileges;
     Query OK, 0 rows affected (0.01 sec)
     mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
     Query OK, 0 rows affected (0.01 sec)

*si vous ne voulez pas de mot de passe ou plutôt un mot de passe vide

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Confirmer les résultats :

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Quittez le shell et redémarrez mysql en mode normal.

     mysql> quit;
     [root ~]# kill -KILL [PID of mysqld_safe]
     [root ~]# kill -KILL [PID of mysqld]
     [root ~]# service mysql start
  2. Vous pouvez maintenant vous connecter en tant qu'utilisateur root avec le mot de passe que vous avez défini.

      [root ~]# mysql -u root -pYourNewPassword 
      mysql>

69voto

Bozho Points 273663

Vous pouvez réinitialiser votre mot de passe Root . Gardez à l'esprit qu'il n'est pas conseillé d'utiliser Root sans mot de passe.

27voto

yellobird Points 31

1) Vous pouvez définir le mot de passe Root en invoquant la console MySQL. Elle se trouve dans

C:\wamp\bin\mysql\mysql5.1.53\bin par défaut.

Allez dans le répertoire et tapez MySQL. puis définissez le mot de passe comme suit

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) Vous pouvez configurer l'application phpmyadmin de wamp pour l'utilisateur Root en éditant

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Note :- Si vous utilisez xampp, le fichier se trouve à l'adresse suivante

C:\xampp\phpMyadmin\config.inc.php

Il se présente comme suit :

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

L'erreur "Accès refusé pour l'utilisateur 'Root@localhost' (utilisant le mot de passe:NO)" sera résolue lorsque vous définirez $cfg['Servers'][$i]['AllowNoPassword'] à faux

Si vous avez précédemment changé le mot de passe de 'Root@localhost', vous devez faire 2 choses pour résoudre l'erreur "Access denided for user 'Root@localhost'" :

  1. si ['password'] contient des guillemets vides comme ' ' puis mettez votre mot de passe entre guillemets.
  2. changer le (en utilisant le mot de passe:NO) en (en utilisant le mot de passe:YES)

Cela résoudra l'erreur.

Note : phpmyadmin est un outil séparé qui est livré avec wamp. Il fournit juste une interface à MySQL. Si vous changez le mot de passe de mon sql Root, alors vous devez changer les configurations de phpmyadmin. Habituellement, phpmyadmin est configuré pour l'utilisateur Root.

27voto

Vikash Kumar Points 51

Utilisez mysql -u Root -p Il vous demandera un mot de passe, insérez le mot de passe et entrez.

13voto

Sushantkumar M Points 327

J'obtenais la même erreur sur OS X El captain. Mysql version 5.7 . J'ai pu me connecter à mysql avec Root après avoir exécuté ces étapes.

Arrêter le serveur mysql

sudo mysql.server stop

Démarrer mysql en mode sans échec

sudo mysqld_safe --skip-grant-tables

En utilisant mysqld, changez la base de données en mysql et mettez à jour les détails de l'utilisateur 'Root'.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

Ensuite, tuer le processus 'mysqld_safe' et démarrer mysql normalement. Vous devriez pouvoir vous connecter à mysql en utilisant Root et le nouveau mot de passe. Documentation SQL pour plus de détails

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X