mysqlのバージョン8.0.25で権限付与ができません。
mysql
1mysql> GRANT ALL PRIVILEGES ON DB名.* TO ‘user’@‘localhost’ WITH GRANT OPTION; 2ERROR 1410 (42000): You are not allowed to create a user with GRANT
エラー発生までの手順
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON DB名.* TO 'user'@'localhost' WITH GRANT OPTION;
rootの権限確認
mysql
1mysql> show grants for 'root'@'localhost'; 2 3| Grants for root@localhost 4| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`localhost` WITH GRANT OPTION | 5| GRANT APPLICATION_PASSWORD_ADMIN,AUDIT_ADMIN,BACKUP_ADMIN,BINLOG_ADMIN,BINLOG_ENCRYPTION_ADMIN,CLONE_ADMIN,CONNECTION_ADMIN,ENCRYPTION_KEY_ADMIN,FLUSH_OPTIMIZER_COSTS,FLUSH_STATUS,FLUSH_TABLES,FLUSH_USER_RESOURCES,GROUP_REPLICATION_ADMIN,INNODB_REDO_LOG_ARCHIVE,INNODB_REDO_LOG_ENABLE,PERSIST_RO_VARIABLES_ADMIN,REPLICATION_APPLIER,REPLICATION_SLAVE_ADMIN,RESOURCE_GROUP_ADMIN,RESOURCE_GROUP_USER,ROLE_ADMIN,SERVICE_CONNECTION_ADMIN,SESSION_VARIABLES_ADMIN,SET_USER_ID,SHOW_ROUTINE,SYSTEM_USER,SYSTEM_VARIABLES_ADMIN,TABLE_ENCRYPTION_ADMIN,XA_RECOVER_ADMIN ON *.* TO `root`@`localhost` WITH GRANT OPTION | 6| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION | 7 83 rows in set (0.00 sec) 9
権限付与したいユーザーの権限一覧
mysql
1mysql> show grants for 'user'@'localhost'; 2+-------------------------------------------------------+ 3| Grants for user@localhost | 4+-------------------------------------------------------+ 5| GRANT USAGE ON *.* TO `user`@`localhost` | 6+-------------------------------------------------------+ 71 row in set (0.00 sec) 8 9
以上、何が悪いのか全く検討がつきません。
何が悪いのでしょうか。
念のためMySQLインストールされたOS含めた環境情報も提示してください。
まっさらな同じ環境をdockerで構築し、root@localhostから「エラー発生までの手順」記載のコマンドをコピー&ペーストして試してみましたが全て成功しています。
しかし、冒頭に書かれている
GRANT ALL PRIVILEGES ON DB名.* TO ‘user’@‘localhost’ WITH GRANT OPTION;
はクォートがascii文字のそれではないように見えます。(そのおかげでuser@localhostが対象になっていない可能性がある)
エラーまでの発生手順に書かれているコマンドを**コピー&ペーストで**もう一度実行してみてください。うまくいくかもしれません。
ちなみに、localhost対象ならユーザー名やホスト名をクォートで括る必要はありません。
また、m.ts10806さんが要求しているようにMySQLの動作環境も補足してください。
おそらくMac上で動かしていると思うのでMacのバージョン、インストール方法、インストール後に行った権限に関する操作も覚えている範囲で書いてもらうと詳しい人が答えやすいと思います。
あなたの回答
tips
プレビュー