2016-10-24 3 views
1

에서 작동하지 않습니다 내가 루트로 로그인하고 다음 명령을 입력 한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 
입니다

그리고 난 사용자 하이브에 대한 보조금을 확인합니다.

0 1,239,992,371,383,592,652,093,210

나는

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

왜 여기에 명령 작업을 부여하지 않습니다 시도?


/etc/my.cnf에서 건너 뛰기 이름 확인이 비활성화되었으며 작동합니다. http://mysql-forum.ch/archive/index.php?thread-5.html 경고는 주로 IP 주소 대신 호스트 이름 '마스터'를 사용하여 발생한다고 생각합니다.

그러나 /etc/my.cnf에서 건너 뛰기 이름 확인을 사용하지 않도록 설정하거나 다른 선택의 여지가 있습니까?

+0

은 효과가있는 것처럼 보입니다. 어떤 경고 메시지를 받았습니까? – Rahul

+0

경고는 "MySQL이 --skip-name-resolve 모드로 시작되었으므로이 스위치를 사용하지 않고 다시 시작해야이 권한이 작동합니다" – April

답변

2

아무런 문제가 없으며 show grants 문을 잘못 사용하고 있습니다. show grants의 MySQL 설명서에서 다음과 같이 말합니다 :

계정 이름을 지정하려면 GRANT 문과 같은 형식을 사용하십시오. 예 : 'jeffrey'@ 'localhost'. 계정 이름의 사용자 이름 부분 만 지정하면 '%'의 호스트 이름 부분이 사용됩니다.

'하이브'@ '마스터'와 '하이브'@ '%'사용자가 다릅니다. 'hive'@ 'master'사용자의 보조금을 표시하려면 show grants 문에 전체 사용자 계정 이름을 사용하십시오.