Najpierw zidentyfikuj użytkownika, do którego jesteś zalogowany jako:
select user();
select current_user();
Wynikiem pierwszego polecenia jest to, jak próbowałeś się zalogować, a drugie to, jak faktycznie się podłączyłeś. Potwierdź, że jesteś zalogowany jako example@sqldat.com w mysql.
Grant_priv do example@sqldat.com . Oto jak możesz to sprawdzić.
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 |
+-----------+------------------+-------------------------------------------+------------+------------+
Możesz zobaczyć, że Grant_priv jest ustawiony na N dla example@sqldat.com To musi być Y. Poniżej opisano, jak to naprawić:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
GRANT ALL ON *.* TO 'root'@'localhost';
Zalogowałem się ponownie, było dobrze.