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:

  1. 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);
  2. 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.)

montrer comment u créer un nouvel utilisateur dans mysql
Avez-vous essayé l'octroi de privilèges spécifiquement pour user@localhostau 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