我的MySQL服务器上有奇怪的行为。我确定我拥有一个拥有所有权限的帐户。这是证据:
mysql> show grants;
+-------------------------------------------------------------------------+
| Grants for ***@localhost |
+-------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO '***'@'localhost' IDENTIFIED BY PASSWORD '***' |
| GRANT ALL PRIVILEGES ON `***`.* TO '***'@'localhost' |
| GRANT ALL PRIVILEGES ON `***`.* TO '***'@'localhost' |
| GRANT ALL PRIVILEGES ON `***`.* TO '***'@'localhost' |
+-------------------------------------------------------------------------+
4 rows in set (0.04 sec)
但是为什么我在执行这种语法时总会收到错误消息:
mysql> ALTER TABLE outbox_multipart.ID AUTO_INCREMENT = 12;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 13924219
Current database: ***
ERROR 1142 (42000): ALTER command denied to user '***'@'localhost' for table 'ID'
我几乎可以做任何事情(INSERT,UPDATE,DELETE,TRUNCATE等),但可以使用该帐户进行更改。知道它有什么问题吗?
我尝试用phpmyadmin和php脚本做同样的事情,但结果相同。好像我不能改变那一栏。
答案 0 :(得分:3)
用户'***'@'localhost'
拥有数据库'***'
的所有权限,但您正尝试在另一个数据库中使用ALTER表 - outbox_multipart
。为此数据库添加权限,重新连接并尝试更改。
答案 1 :(得分:0)
授予命令后,您应该以root身份运行命令
flush privileges;
之后,您的补助金将有效。