Utiliser cette commande
GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';
J'essaie de me connecter avec:
mysql -u brian -ppassword
L'erreur est:
ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)
Je le fais en tant que root et j'ai essayé de supprimer les privilèges.
J'ai essayé cela avec d'innombrables utilisateurs, mais cela ne semble pas fonctionner. Je peux créer un utilisateur sans mot de passe et la connexion fonctionne. Ligne de commande et de phpmyadmin
Vérifiez également si l'utilisateur était dans mysql.user.
Afficher les subventions pour les spectacles de brian:
| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
Vous avez probablement ce problème perpétuel avec MySQL où l’un des utilisateurs par défaut de la table user est '' @ localhost
, ce qui finit par refuser à tous les utilisateurs localhost
ultérieurement dans la table. Ce que je ferais, c'est mysqldump
la base de données mysql
et chercherais cette entrée dans la table User
; si trouvé, supprimez-le et supprimez les privilèges.
Pour plus de détails, voir https://dev.mysql.com/doc/refman/5.5/fr/connection-access.html .
Il est courant de penser que, pour un nom d'utilisateur donné, toutes les lignes nommant explicitement cet utilisateur sont utilisées en premier lorsque le serveur tente de trouver une correspondance pour la connexion. Ce n'est pas vrai. L'exemple précédent illustre cela, où une connexion de h1.example.net par jeffrey est d'abord comparée non par la ligne contenant «jeffrey» comme valeur de colonne User, mais par la ligne sans nom d'utilisateur. En conséquence, jeffrey est authentifié en tant qu'utilisateur anonyme, même s'il a spécifié un nom d'utilisateur lors de la connexion.
Ceci est un problème causé par les utilisateurs anonymes. Une fois MySQL installé, je lance toujours
Shell> mysql_secure_installation
et sélectionnez pour définir/modifier le mot de passe root, supprimer les utilisateurs anonymes, interdire la connexion à la racine distante, supprimer la base de test. Cela supprimera l'utilisateur anonyme et sécurisera votre installation. Cela devrait également résoudre le problème que vous avez.
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
Aucune des solutions fournies ici n'a fonctionné. Après de nombreuses erreurs et essais, j'ai réalisé que le mot de passe avait des caractères spéciaux. Changer le mot de passe sans caractères spéciaux a résolu le problème
Les documents mysql ont ceci à dire: (From http://dev.mysql.com/doc/refman/5.1/en/adding-users.html ):
Deux des comptes ont un nom d'utilisateur de
monty
et un mot de passe desome_pass
. Les deux comptes sont des comptes de superutilisateur avec tous les privilèges nécessaires. Le compte'monty'@'localhost'
ne peut être utilisé que lors de la connexion à partir de l'hôte local. Le compte'monty'@'%'
utilise le caractère générique'%'
pour la partie hôte. Il peut donc être utilisé pour se connecter à partir de tout hôte.Il est nécessaire d’avoir les deux comptes pour
monty
pour pouvoir se connecter de n'importe où en tant quemonty
. Sans le compte localhost, le compte d'utilisateur anonyme pour localhost créé parmysql_install_db
est prioritaire lorsque monty se connecte à partir du fichier hôte local. Par conséquent,monty
serait traité comme un utilisateur anonyme. La raison en est que le compte d'utilisateur anonyme a une valeur de colonneHost
plus spécifique que le compte'monty'@'%'
et vient donc plus tôt dans l'ordre de tri de la table utilisateur.
Dans cet esprit, je vous recommanderais de créer un utilisateur 'brian'@'localhost'
avec les mêmes privilèges.
Vous avez oublié les citations autour de Brian dans votre déclaration de subvention. Essayez comme ça:
GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';
Je viens de créer un compte pour offrir une autre possibilité aux futurs chercheurs:
Cela peut sembler évident aux utilisateurs expérimentés, mais mon mot de passe a été généré de manière aléatoire et contenait un "\". Il m'a fallu un peu de temps avant que je découvre que ce personnage semblait poser problème, ce qui m'empêchait de me connecter.
Je pense que "Russell Silva" a raison ...
J'ai créé un utilisateur par
CREATE USER 'username'@'%' PASSWORD='userpassword';
Mais je ne peux pas me connecter à ce compte. La console m'a dit que
ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)
J'ai donc créé un utilisateur avec le même nom d'utilisateur, à l'exception du changement de '%' à 'localhost', et j'ai enfin pu me connecter en tant que 'nom d'utilisateur'. C'est assez bizarre pour moi cependant.
Dans mon cas, c'est à moi de cliquer sur "SSL: REQUIRE SSL" (dans phpmyadmin). Quand je l'ai changé en "REQUIRE NONE", je pouvais me connecter.
J'ai eu un problème similaire lors de la tentative de connexion à une base de données Maria exécutant Ubuntu après la mise à niveau vers 17.04.
La valeur par défaut était d'écouter uniquement sur localhost, 127.0.0.1.
Pour que MySQL/Maria écoute tous les ports et interfaces disponibles, je devais spécifier explicitement bind-address = 0.0.0.0. J'ai ajouté cette ligne à la fin du fichier /etc/mysql/my.cnf
, c'est-à-dire.
...
[client-server]
# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/
bind-address=0.0.0.0
Ensuite...
Sudo /etc/init.d/mysql restart
Vous pouvez également vous connecter à partir d'un autre hôte, puis l'utilisateur anonyme localhost est ignoré. Vous pouvez le supprimer et supprimer les privilèges suivants:
mysql -u brian -ppassword -h 'other_Host_than_localhost'