188 votes

Accès refusé à l'utilisateur 'Root'@'localhost' (avec mot de passe : YES) - Pas de privilèges ?

Je reçois continuellement cette erreur.

J'utilise mySQL Workbench et ce que je constate, c'est que les privilèges de schéma de Root sont nuls. Il n'y a pas de privilèges du tout.

J'ai des problèmes avec les différentes plateformes pour lesquelles mon serveur est utilisé et ce problème est apparu soudainement.

Root@127.0.0.1 a apparemment beaucoup d'accès mais je suis connecté en tant que tel, mais il attribue simplement à localhost de toute façon - localhost n'a aucun privilège.

J'ai fait des choses comme FLUSH HOSTS , FLUSH PRIVILEGES etc. mais je n'ai rien trouvé de concluant dans ce domaine ou sur Internet.

Comment puis-je récupérer l'accès à Root ? Je trouve cela frustrant parce que lorsque je regarde autour de moi, les gens s'attendent à ce que vous ayez "un accès" mais je n'ai pas d'accès et je ne peux pas aller dans la ligne de commande ou quoi que ce soit et GRANT moi-même n'importe quoi.

En cours d'exécution SHOW GRANTS FOR root c'est ce que je reçois en retour :

Code d'erreur : 1141. Il n'y a pas de subvention définie pour l'utilisateur 'Root' sur l'hôte '%'.

0voto

Mohit Ramani Points 41

J'ai rencontré le même problème lorsque j'ai essayé de connecter la base de données Mysql en utilisant l'application Laravel. Je voudrais vous recommander de vérifier le mot de passe de l'utilisateur. Le mot de passe MySQL ne doit pas contenir de caractères spéciaux comme # , & etc...

0voto

Cecherz Points 36

Dans mon cas :

  • J'ai défini l'authentification du plugin sur "" (vide) et je ne peux pas exécuter le serveur mysql :

SOLUTION :

  1. nano /etc/mysql/my.cnf
  2. éditer :

[mysqld]

skip-grant-tables

  1. service mysql restart
  2. mysql -u Root
  3. utiliser mysql
  4. UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE User = 'Root'.
  5. privilèges de chasse d'eau

0voto

shubham kumar Points 33

La cause pourrait être un fichier mysqld manquant dans /var/run/mysqld

sudo service mysql stop
sudo mysqld_safe --skip-grant-tables
sudo service mysql start

si le fichier ne sort pas alors créer le fichier

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

vérifiez maintenant que vous êtes capable de vous connecter à mysql -uroot -p123 sinon, faites

sudo mysql -u root
use mysql;
show tables;
describe user;
update user set authentication_string=password('1111') where user='root';
FLUSH PRIVILEGES;
exit;
mysql -uroot -p123

lien - mysqld_safe Le répertoire '/var/run/mysqld' pour le fichier socket UNIX n'existe pas.

0voto

Ritunjay kumar Points 41
alter user 'root'@'localhost' identified with mysql_native_password by '$your_password$';

ça a marché pour moi.

note : utilisez un mot de passe fort par exemple

alter user 'root'@'localhost' identified with mysql_native_password by 'root';

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