MySQL Accès refusé pour l'utilisateur 'root' @ 'localhost'

MySQL Accès refusé pour l'utilisateur 'root' @ 'localhost'
«L'une des erreurs les plus courantes rencontrées par les utilisateurs de MySQL est« l'accès MySQL refusé pour l'utilisateur «root» @ «localhost»."Et que vous soyez un nouvel utilisateur de MySQL ou un nouveau, connaissant les différentes techniques pour résoudre celles-ci est avantageuse.

En utilisant ce guide, vous découvrirez trois méthodes pour résoudre cette erreur."

Que signifie cette erreur?

La meilleure façon de comprendre cette erreur est de le décomposer en composants uniques. Cette erreur se produit lorsque vous essayez de vous connecter dans votre instance MySQL sur votre machine locale, d'où «localhost.'

Un exemple est comme indiqué:

$ mysql -u root -p

Les composants de l'erreur sont les suivants:

  1. Erreur 1045 (28000) - fait référence au code d'erreur et à SqlState, respectivement. Par exemple, dans MySQL et MariaDB, le code d'erreur 1045 signifie l'accès refusé pour ce nom d'utilisateur avec le mot de passe spécifié.
  2. Le second est la chaîne de message. Le message d'erreur suit le format: accès refusé pour l'utilisateur '% s' @ '% s' (en utilisant le mot de passe:% s).

Remarque: le premier% S du message d'erreur fait référence au nom d'utilisateur, tandis que le second fait référence à l'hôte.

Solution 1: Sudo dans MySQL

La première méthode la plus courante pour résoudre cette erreur est à Sudo dans votre instance MySQL et à définir l'auth_plugin sur mysql_native_password.

Ouvrez votre terminal et courez:

$ sudo mysql

Entrez le mot de passe du compte et continuez.

Ensuite, modifiez l'Auth_Plugin et définissez un nouveau mot de passe pour le compte racine comme indiqué:

Alter User 'root @ localhost' identifié avec mysql-native_password par «mot de passe»;

La modification du plugin d'authentification vous permettra de vous connecter à votre serveur.

Ensuite, rincez les privilèges pour mettre à jour les tables de subventions:

Privilèges de rinçage;

Enfin, quittez le terminal et essayez votre connexion:

$ mysql -u root -p

Solution 2- Modifier manuellement le fichier de configuration

Si l'erreur persiste, vous devrez peut-être modifier le fichier de configuration MySQL. Dans la plupart des cas, c'est sous le nom de mon.CNF dans les répertoires / etc ou / etc / mysql.

Localisez ce fichier dans le dossier d'installation MySQL pour les utilisateurs de Windows et Mac.

Si le fichier n'existe pas, créez-le.

Ouvrez le fichier avec votre éditeur de texte et localisez le bloc MySQLD.

$ nano / etc / mysql / mon.CNF

Sous le bloc [mysqld], ajoutez l'entrée suivante.

tables de saut

Fermer et enregistrer le fichier.

Ensuite, redémarrez le serveur MySQL et connectez-vous.

$ sudo Service mysql redémarrage
$ mysql -u root -p

Une fois connecté, rincez les privilèges et définissez un nouveau mot de passe:

Privilèges de rinçage;
Modifier l'utilisateur «root @ localhost» identifié par «mot de passe»;

Assurez-vous de remplacer la commande ci-dessus par un mot de passe sécurisé.

Une fois terminé, modifiez mon.Fichier CNF et supprimer l'entrée que nous avons ajoutée plus tôt.

Redémarrez le serveur MySQL et connectez-vous avec votre nouveau mot de passe.

Solution 3 - Démarrez MySQL en mode sans échec

MySQL vous fournit l'utilitaire MySQLD_SAFE pour démarrer le serveur MySQL. Cet utilitaire nous permet de spécifier des fonctionnalités sûres lors du démarrage et du redémarrage du serveur pour diagnostiquer les erreurs.

Commencez par arrêter le serveur MySQL.

$ sudo service mysql stop

Ensuite, démarrez MySQL sans authentification comme;

$ mysqld_safe - Skip-Grant-Tables &

La commande démarrera le serveur en arrière-plan comme travail.

Une fois le démon est en cours d'exécution (avec l'authentification désactivée), ouvrez un nouveau terminal et exécutez:

$ mysql -u root -p

La commande ci-dessus devrait vous permettre de vous connecter sans mot de passe.

Une fois connecté, rincez les privilèges et définissez un nouveau mot de passe:

Privilèges de rinçage;
Modifier l'utilisateur «root @ localhost» identifié par «mot de passe»;

Fermez la session et redémarrez MySQL.

Maintenant, connectez-vous à votre serveur avec votre nouveau mot de passe.

Fermeture

Dans cet article, nous avons couvert trois méthodes principales pour résoudre le

"MySQL Access refusé pour l'utilisateur" root @ localhost "" Erreur.

Nous espérons que ce tutoriel vous a aidé à résoudre cette erreur.