Permettez-moi d'abord de mentionner que j'ai examiné de nombreuses questions suggérées et que je n'ai trouvé aucune réponse pertinente. Voici ce que je fais.
Je suis connecté à mon instance Amazon EC2. Je peux me connecter à l'utilisateur root MySQL en utilisant la commande suivante :
mysql -u root -p
Puis j'ai créé une nouvelle facture utilisateur avec % hôte
CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';
Accorder toutes les autorisations à la facture utilisateur :
grant all privileges on *.* to 'bill'@'%' with grant option;
Ensuite, je me suis déconnecté en tant qu'utilisateur root et j'ai essayé de me connecter en utilisant l'utilisateur de facturation :
mysql -u bill -p
Après avoir saisi le mot de passe correct, l'erreur suivante apparaît :
Erreur 1045 (28000) : Accès refusé pour l'utilisateur "bill"@"localhost" (en utilisant le mot de passe : OUI)
Essayez :
Vous pouvez avoir un utilisateur anonyme
''@'localhost'
或''@'127.0.0.1'
.Selon le Manuel :
Par conséquent, un tel utilisateur anonyme "bloquera" tout autre utilisateur comme
'[any_username]'@'%'
在从localhost
lorsqu'il est connecté.'bill'@'localhost'
匹配'bill'@'%'
,但会在之前匹配(例如)''@'localhost'
.La solution recommandée est de supprimer cet utilisateur anonyme (c'est généralement une bonne idée).
Les modifications ci-dessous ne sont pour la plupart pas pertinentes par rapport à la question principale. Il s'agit simplement de répondre à certaines des questions posées dans d'autres commentaires de ce fil.
Modifier 1
Authentifiez-vous avec
'bill'@'%'
via socket.Edit 2
Exactement la même configuration, sauf que j'ai réactivé le réseau et créé maintenant un utilisateur anonyme
''@'localhost'
.Edit 3
Même situation que dans l'édition 2, fournissant désormais un mot de passe pour l'utilisateur anonyme.
Conclusion 1, de l'édition 1 : L'authentification
'bill'@'%'
est possible via des sockets.Conclusion 2, de l'édition 2 : que la connexion via TCP ou via des sockets n'ait aucun impact sur le processus d'authentification (à part ne pas pouvoir se connecter via des sockets à un autre utilisateur que
'something'@'localhost'
).Conclusion 3, de l'édition 3 : Même si j'ai spécifié
-ubill
, j'ai obtenu l'accès en tant qu'utilisateur anonyme. Cela est dû aux « règles de commande » suggérées ci-dessus. Veuillez noter que sur la plupart des installations par défaut, il existe un utilisateur anonymesans mot de passe (qui doit être sécurisé/supprimé).