MySQL Error 1045, “Access denied for user 'utilisateur'@'localhost' (using password: YES)”
Cette question semblent être demandé beaucoup cependant je ne peux pas trouver une réponse définitive.
Je fais quelques webapp tests à l'aide de MySQL, et au début j'ai utilisé le 'root' de l'utilisateur (avec un mot de passe non vide). Mon utilisateur root fonctionne bien à partir de ces applications (testé à partir de PHP et Python Django), à partir de la ligne de commande, et avec PHPMyAdmin.
Toutefois, je n'ai pas voulu utiliser l'utilisateur root, j'ai donc créé un autre utilisateur, et j'ai accordé à tous les privilèges pour les bases de données de l'utilisateur. (J'ai utilisé PHPMyAdmin connecté en tant que 'root' pour cette tâche).
Le nouvel utilisateur ne peut se connecter à MySQL. Ni de Django app, ni PHPMyAdmin, ni de la ligne de commande.
J'ai deux soupçons:
- il y a un privilège global de l'utilisateur ne dispose pas d'. (Comme je l'ai dit, j'ai accordé à tous les privilèges de base de données, cependant je n'ai pas accordé des droits globaux);
- l'utilisateur d'hôte configuré. ('root' a quatre lignes dans le mysql.l'utilisateur table, pour les hôtes 'localhost', 'mon-pc-nom', '127.0.0.1' et '::1'; tandis que le nouvel utilisateur a une ligne pour l'hôte '%')
(J'ai vérifié le mot de passe, donc je suis sûr que ce n'est pas un problème de mot de passe.)
Avez-vous essayé l'octroi de privilèges spécifiquement pour
user@localhost
au lieu d'utiliser %
générique?J'ai créé un nouvel utilisateur avec PHPMyAdmin.
Je l'ai enfin fait et cela a fonctionné.
Bon, gardez à l'esprit que
%
ne serait pas de match de socket unix connexions, de sorte que vous devez explicitement d'accorder des privilèges pour localhost
OriginalL'auteur Carlos Eugenio Thompson Pinzón | 2013-04-13
Vous devez vous connecter pour publier un commentaire.
% signifie que le nouvel utilisateur peut accéder à la base de données à partir de n'importe quel hôte.
Toutefois, si vous avez fourni l'instruction CREATE USER serait beaucoup plus utile.
En outre, vérifiez Manuel MySQL ci-dessous, où il explique pourquoi l'utilisateur devrait avoir à la fois
@'localhost'
et@'%'
:Manuel De Référence De MySQL - Ajout D'Utilisateurs
@'localhost'
aidé. Je vous remercie.C'est une honte que, si c'est si important d'avoir une localhost version de chaque utilisateur par défaut de mysql propre administrateur de programme ("mysql workbench ce") ne fournit pas une option pour le faire dans sa modélisation de la mode, mais fournit seulement une façon de créer le "@%" variante.
OriginalL'auteur johnnaras
de redémarrer le serveur mysql + "flush privileges;" commande résolu pour moi
OriginalL'auteur yasin