2016-10-24 4 views
1

では動作しません。私は、rootとしてログインし、以下のコマンドを入力したgrantコマンドは、MySQL

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'master' WITH GRANT OPTION; 

結果が

Query OK, 0 rows affected, 1 warning (0.00 sec) 

警告メッセージが

Warning | 1285 | MySQL is started in --skip-name-resolve mode; you must restart it without this switch for this grant to work 
です

、その後、ユーザーのハイブの許可を確認します

mysql> show grants for hive; 
+-----------------------------------------------------------------------------------------------------+ 
| Grants for [email protected]%                     | 
+-----------------------------------------------------------------------------------------------------+ 
| GRANT USAGE ON *.* TO 'hive'@'%' IDENTIFIED BY PASSWORD '*4DF1D66463C18D44E3B001A8FB1BBFBEA13E27FC' | 
+-----------------------------------------------------------------------------------------------------+ 

1 row in set (0.00 sec) 

と私は

show grants for 'hive'@'master' 
ERROR 1141 (42000): There is no such grant defined for user 'hive' on host 'master' 

なぜここにコマンドの仕事を付与するものではありませんを試してみましたか?


/etc/my.cnfで、私は無効になっスキップ名-RESOLV、それが動作します。 http://mysql-forum.ch/archive/index.php?thread-5.html 警告は、主にIPアドレスの代わりにホスト名「マスター」を使用することによって発生すると考えられます。

しかし、/etc/my.cnfにスキップ名解決を無効にすることをお勧めしますか、他に選択肢がありますか?

+0

はうまくいきます。どのような警告メッセージを受け取りましたか? – Rahul

+0

警告は「MySQLは--skip-name-resolveモードで起動されていますが、このスイッチを使用しないで再起動する必要があります。 – April

答えて

2

ここでgrantステートメントに間違いはありません。show grantsステートメントを間違って使用しています。 show grantsに関するMySQLのドキュメントには、次のように書かれています。

アカウント名を指定するには、GRANT文と同じ形式を使用します。たとえば、 'jeffrey' @ 'localhost'などです。アカウント名のユーザー名部分のみを指定すると、ホスト名部分 '%'が使用されます。

'hive' @ 'master'と 'hive' @ '%'のユーザーが異なります。 'hive' @ 'master'ユーザーの権限を表示するには、show grantsステートメントで完全なユーザーアカウント名を使用します。

関連する問題