1227: Access denied; you need (at least one of) the PRIVILEGE(アクセス拒否。権限が必要)
MySQL意味
ユーザーに、試行した操作に必要な権限がない。この操作には、アカウントに付与された権限を超える権利が必要である。
原因
SUPER、PROCESS、RELOAD、CREATE USER などの管理権限の欠如、グローバルビュー/テーブルの読み取りに必要な権限が付与されていない、特定の操作 (SET GLOBAL、binlog へのアクセス) に昇格した権限が必要。
対処方法
現在の権限を表示する: SHOW GRANTS FOR CURRENT_USER(); 権限のあるアカウントで必要な権限を付与する: GRANT PROCESS ON *.* TO 'app_user'@'host'; (GRANT は即座に有効になり、FLUSH PRIVILEGES は不要)。可能なら SUPER の代わりに動的権限 (例: SYSTEM_VARIABLES_ADMIN) を使う。最小権限の原則に従う。
同じデータベースの他の項目
- 1091Can't DROP 'x'; check that column/key exists(DROP できない。列/キーの存在を確認)
- 1093You can't specify target table 'x' for update in FROM clause(FROM 句で更新対象テーブルは指定できない)
- 1305PROCEDURE does not exist(プロシージャが存在しない)
- 3730Cannot drop table referenced by a foreign key constraint(外部キー制約で参照されているテーブルは削除できない)
- 2013Lost connection to MySQL server during query(クエリ中に MySQL サーバーとの接続が失われた)
- 1153Got a packet bigger than 'max_allowed_packet' bytes(max_allowed_packet より大きいパケットを受信)
- 1969MariaDB: Query execution was interrupted (max_statement_time exceeded)(クエリの実行が中断された)