ne peut pas accorder de privilèges à la base de données mysql
J'ai les versions du Serveur mysql: 5.5.32-0ubuntu0.12.04.1 (Ubuntu) installé linux Ubuntu 12.04 LTS.
Me semble avoir toutes les autorisations en tant que root. Je peux créer un utilisateur et une base de données. Cependant, je n'arrive pas à donner à l'utilisateur toutes les autorisations pour la db.
Mon .mon.cnf:
[client]
user=root
password=test
Je connexion par le biais de mysql -u root -h localhost -p
mais je ne peux pas me connecter sans le -p
option si j'ai l' .mon.cnf (pas un problème, mais impair).
Il y avait un groupe d'utilisateurs racine, donc je me suis débarrassé d'eux et j'ai ces utilisateurs:
mysql> SELECT host,user,password FROM mysql.user;
+-----------+------------------+-------------------------------------------+
| host | user | password |
+-----------+------------------+-------------------------------------------+
| localhost | root | ***************************************** |
| localhost | debian-sys-maint | ***************************************** |
+-----------+------------------+-------------------------------------------+
mysql> SHOW GRANTS FOR 'root'@'localhost';
+----------------------------------------------------------------------------------------------------------------------+
| Grants for root@localhost |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*****************************************' |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+----------------------------------------------------------------------------------------------------------------------+
Maintenant, j'ai créer une base de données, un utilisateur. La dernière ligne affiche une erreur quand je l'octroi des autorisations. Pouvez-vous s'il vous plaît laissez-moi savoir pourquoi je reçois cette erreur et ce que je peux faire pour faire ce travail?
mysql> create database staging;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'staging'@'localhost' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON staging.* TO 'staging'@'localhost';
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'staging'
source d'informationauteur Trewq
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, Identifier l'utilisateur que vous êtes connecté en tant que:
Le résultat de la première commande est ce que vous avez tenté de vous connecter en tant que, la deuxième est ce que vous avez réellement connecté tant que. Vérifiez que vous êtes connecté en tant que
root@localhost
dans mysql.Le problème est que l'installation j'ai trouvé n'a pas fourni
Grant_priv
àroot@localhost
. Voici comment vous pouvez vérifier.Vous pouvez voir que le Grant_priv est définie sur N pour root@localhost. Ce doit être Y. Voici comment j'ai résolu ce:
Je n'ai obtenir l'autorisation d'erreur, mais quand je me suis connecté, c'était bien.
essayez d'évacuer les privilèges d'après l'octroi des autorisations
Pour ceux qui ont encore de tomber sur ce comme je l'ai fait, il vaut la peine de vérifier la tentative de
GRANT
n'existe pas déjà:Dans mon cas, l'erreur n'a pas été fait parce qu'il y avait une erreur de permission, mais parce que le
GRANT
existait déjà.