2016-05-22 8 views
1

このエラーは、作成したばかりの新しいルートアカウントにすべての権限を付与したときに発生しました。MySQL「mysqlユーザーに定義された権限がありません」

の手順で問題を生成するには:「ショー助成金」の後

CREATE USER 'root'@'localhost'; 
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION; 
FLUSH PRIVILEGES; 
SHOW GRANTS for 'root'@'localhost'; 

を私は「『localhost』のホスト上のユーザー 『ルート』に定義された、このような助成金はありませんmysqlの」エラーを得ました。最初の3つのコマンドを実行した後にエラーはありませんでした。新しいユーザーが正常に作成されました。

この問題を解決するにはどうすればよいですか?

詳細情報: MacOSノートパソコン(OSX 10.10.5)でMySQL 5.7を実行しています。

+0

私はこのコードをOSX 10.11.4のMySQL 5.6.25でテストしました。これは正常に動作します(そのアカウントは既に存在していたため、「root」ではありません)。 – M4tini

+0

私はこのコードを5.7.12でUbuntuでテストしました。 –

答えて

0

あり、あなたの投稿コードと間違って何もありませんが、推測として、別の方法として

SHOW GRANTS for 'root'@'%'; 

(OR)

のようにワイルドカード記号%てみてください、あなたの作成したユーザー'root'@'localhost'でログインし、ちょうどSHOW GRANTSを使用しています。 Documentation

+0

ご返信ありがとうございます。しかし、 'root' @ '%'はDBサーバーに存在しないため、 'root' @ '%' 'にSHOW GRANTSを使用すると同じエラーが発生します。また、リストされたコマンドを入力した後、作成されたユーザー 'root' @ 'localhost'は、「Usage」権限がなくても、特権を持ちません。だから私はそのアカウントでもログインできません。 – eaglesky

0

私はmysqlを使って別のrootアカウントを作成することはできません。したがって、作成によってエラーが発生します。

CREATE USER 'root'@'localhost'; 

ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost' 

あなたはユーザーテーブル内の既存のrootアカウントをチェックする必要があり、あなたはワイルドカードを使用すると、ローカルホストのrootユーザーを作成する必要はありません意味すべき「%」であることを見つけることができます。

select * from user where user = 'root'; 

ローカルホスト上での権限の付与を要求するとうまくいくはずです。

show grants for 'root'@'localhost'; 
+0

実際に私はすべてのコマンドを入力する前に、ユーザー 'root' @ '%'を削除しました。ユーザー 'root' @ 'localhost'は実際に正常に作成されました。私は特権を変更する前に、そのアカウントでログインすることができました。 – eaglesky

0

ステップ-1: sudoのmysqlの-uルート

-pステップ-2: REVOKE ALL PRIVILEGES、@ 'localhost' の 'ユーザー名' FROM GRANT OPTIONを。

Ex.- 'admin' @ 'localhost'からすべての特権、権限を拒否します。

ステップ-3: FLUSH PRIVILEGES;

私はうまくいくと思います。

関連する問題