アクセス拒否エラーなしの権限の付与
権限を付与しようとすると、MySQL ユーザーに「ユーザー 'root' のアクセスが拒否されました」というエラーが発生する場合があります。 @'localhost' (パスワードを使用: YES)。ユーザーが必要な権限を持っているように見えるため、これは不可解かもしれません。
権限の確認
ユーザーが適切な権限を持っていることを確認するには、次のコマンドを実行します。 :
SELECT user(); SELECT current_user(); SHOW GRANTS FOR 'root'@'localhost'; SELECT * FROM mysql.user WHERE User='root';
これらのコマンドは、ユーザーが実際に root@localhost であり、必要な権限を持っていることを確認する必要があります。以下を含む:
問題: 特定のテーブルに対する権限の付与
これらの権限があるにもかかわらず、特定のテーブルに対して権限を付与しようとするとエラーが発生する場合があります。
GRANT ALL PRIVILEGES ON *.* TO 'steves'@'[hostname].com' IDENTIFIED BY '[OBSCURED]' WITH GRANT OPTION;
これは、mysql.users テーブルが考慮されるためです。 root を除くすべてのユーザーはアクセスできません。
解決策: すべてのデータベースに権限を付与する
これを回避するには、すべてのデータベースに権限を付与する次のコマンドを使用します。 mysql.users を除く:
GRANT ALL PRIVILEGES ON `%`.* TO '[user]'@'[hostname]' IDENTIFIED BY '[password]' WITH GRANT OPTION;
%. を使用.* の代わりに、mysql.users テーブルを除くすべてのデータベースが含まれるようにします。これにより、アクセス拒否エラーが発生することなく、権限が正常に付与されるはずです。
以上が必要な権限があるにもかかわらず、MySQL 権限を付与すると「アクセスが拒否されました」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。