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など)を実行できますが、そのアカウントでALTERを実行できます。何が悪いのか分かりますか?
phpmyadminとphpスクリプトで同じことをしようとしましたが、同じ結果が得られました。その列を変更できないようです。