2010-03-09 3 views
3

En tant qu'utilisateur mysql root, j'ai exécuté les éléments suivants:Mysql - comment autoriser l'utilisateur à se connecter?

grant all on mydb.* to john identified by 'john1'; 

Puis de la coquille, j'ai essayé de se connecter via

mysql -h localhost -u john -pjohn1; 

Mais quand je fais cela, je reçois l'erreur

ERROR 1045 (28000): Access denied for user 'john'@'localhost' (using password: YES) 

Comment autoriser John à se connecter au terminal mysql? Ai-je besoin d'utiliser l'utilisateur root mysql pour changer quelque chose dans la table mysql.user?

Merci

+0

Veuillez noter que les réponses ci-dessous donnent beaucoup plus d'accès que l'accès "login" ou "usage". – Kzqai

Répondre

7

Essayez

GRANT ALL PRIVILEGES on mydb.* to 'john'@'localhost' identified by 'john1'; 

Ou peut-être le problème est parce que vous n'êtes pas spécifier le schéma. Ajouter "mydb" à la fin de votre commande de la console de connexion:

mysql -h localhost -u john -pjohn1 mydb 

Docs: http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

+0

pour une raison quelconque, j'ai dû supprimer tous les enregistrements où user = 'john' dans la table mysql.user avant que votre solution puisse fonctionner. – John

3

Essayez: mysql -h localhost -u john -p

Vous serez invité à entrer comme mot de passe. Entrez votre mot de passe à la place. Si vous ne pouvez toujours pas vous connecter, donner privelege john pour accéder localhost

GRANT ALL PRIVILEGES on mydb.* to 'john'@'localhost' identified by 'john1';

Et essayez connecter à nouveau.