19

私はmysqlサーバーのバージョンを持っています:5.5.32-0ubuntu0.12.04.1(Ubuntu)はlinux Ubuntu 12.04 LTSをインストールしました。

rootとしてすべての権限を持っているようです。ユーザーとデータベースを作成できます。ただし、ユーザーにデータベースへのすべての権限を与えることはできないようです。

私の .my.cnf:

[client]
user=root
password=test

経由でログインしましたが、.my.cnf を持っているにもかかわらmysql -u root -h localhost -pず、オプションなしではログインできません(問題ではありませんが、奇妙です)。-p

たくさんの root ユーザーがいたので、それらを取り除き、次のユーザーを作成しました。

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                                                         |
+----------------------------------------------------------------------------------------------------------------------+

ここで、ユーザーであるデータベースを作成します。アクセス許可を付与すると、最後の行にエラーが表示されます。このエラーが発生する理由と、これを機能させるためにできることを教えてください。

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'
4

3 に答える 3

9

権限を付与した後、権限をフラッシュしてみてください

GRANT ALL PRIVILEGES ON staging.* TO 'staging'@'localhost' IDENTIFIED BY 'test';
FLUSH PRIVILEGES;
于 2013-10-08T01:22:17.770 に答える