まず、ログインしているユーザーを次のように特定します。
select user();
select current_user();
最初のコマンドの結果は、ログインしようとしたものであり、2番目のコマンドは実際に接続したものです。 [email protected]
mysqlで。
Grant_priv
[email protected]
。確認方法は次のとおりです。
mysql> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
+-----------+------------------+-------------------------------------------+------------+------------+
| host | user | password | Grant_priv | Super_priv |
+-----------+------------------+-------------------------------------------+------------+------------+
| localhost | root | ***************************************** | N | Y |
| localhost | debian-sys-maint | ***************************************** | Y | Y |
| localhost | staging | ***************************************** | N | N |
+-----------+------------------+-------------------------------------------+------------+------------+
[email protected] のGrant_privがNに設定されていることがわかります。 これはYである必要があります。これを修正する方法は次のとおりです。
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
再度ログインしましたが、問題ありませんでした。