ERROR 1142(42000):ALTER命令被拒绝

时间:2012-09-27 14:00:55

标签: mysql

我的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脚本做同样的事情,但结果相同。好像我不能改变那一栏。

2 个答案:

答案 0 :(得分:3)

用户'***'@'localhost'拥有数据库'***'的所有权限,但您正尝试在另一个数据库中使用ALTER表 - outbox_multipart。为此数据库添加权限,重新连接并尝试更改。

答案 1 :(得分:0)

授予命令后,您应该以root身份运行命令

flush privileges;
之后,您的补助金将有效。