2

我的 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'

我几乎可以做所有事情(插入、更新、删除、截断等),但使用该帐户进行更改。知道有什么问题吗?

我尝试用 phpmyadmin 和 php 脚本做同样的事情,但得到了相同的结果。似乎我无法更改该列。

4

2 回答 2

5

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

于 2012-09-27T14:11:26.010 回答
0

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

flush privileges;

之后,您的赠款将有效。

于 2015-10-25T06:04:19.103 回答