web-dev-qa-db-ja.com

rootはMySQLデータベースに対する権限を付与することはできません

MySQLデータベースを使用していて、rootとしてログインすると、新しく作成したデータベースのユーザーに権限を付与できません。

mysql> create database test1;
Query OK, 1 row affected (0.00 sec)

mysql> grant usage on *.* to 'test'@'%' identified by 'test';
ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
mysql> show grants for root;
+--------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                            |
+--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*hash_is_here' |
+--------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select user();
+-----------------+
| user()          |
+-----------------+
| [email protected] |
+-----------------+
1 row in set (0.01 sec)

ご覧のとおり、私はrootとしてログインできます。rootはに対するすべての特権を持っています。どうすればこれが起こり得るのでしょうか?データを保持しながらMySQLをアップグレードしていません(これは5から5.5にアップグレードしたことが原因である可能性があることを知っています)。ありがとう。

4
sz4kerto

root @%のすべての権限がありますが、「付与オプション」ではありません。私のMySQLインストールでは、私のrootアカウントが許可を適用できるので、これは「show grants」の出力です。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*some_hash' WITH GRANT OPTION

MySQLでは、「すべての権限 "を与えることは許可を含みません。明示的に指定する必要があります。

3
Benoit

5.5を使用していない場合でも、/mysql/binディレクトリからmysql_upgradeを実行する必要があるかもしれません。

ここの最初の答えを参照してください:

0
trpt4him