Ansible の mysql_user モジュールで、root ユーザーを操作していたら、他のユーザーに権限付与ができなくなっていた。
root の show grants 見たら
mysql> show grants;
+--------------------------------------------------------------+
| Grants for root@localhost |
+--------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+--------------------------------------------------------------+
WITH GRANT OPTION が消えていた。
その場合、
UPDATE mysql.user SET Grant_priv = 'Y' WHERE User='root';
して、強制的に Grant_priv を立てるといい。
(この後、FLUSH PRIVILEGES; いるかも?)
正しい show grants は
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
こうなる。
コメント