【问题标题】:MySQL wont let me add columnMySQL不会让我添加列
【发布时间】:2011-11-10 14:52:33
【问题描述】:

这应该是一个非常简单的过程,但无论出于何种原因,我都无法将列添加到 MySQL 表中。这是我的语法:

$query = "ALTER TABLE game_licenses ADD lifetime VARCHAR(255) AFTER expire_date";
$result = mysql_query($query);
if (!$result) {
    echo "it failed";
}
else {
    echo "success";
}

我尝试了多项小更改,例如在 ADD 之后将 COLUMN 添加到查询中。没有 MySQL 错误,但完成了脚本并回显“失败”。

错误是:

ALTER 命令拒绝用户 'webuser'@'localhost'

是否可以锁定表不被更改?

【问题讨论】:

  • mysql_error() 怎么说?
  • 你怎么知道没有错误? echo mysql_error();
  • 我添加了 echo mysql_error() 并得到了这个:ALTER command denied to user 'webuser'@'localhost' for table 'game_licenses'
  • 好吧,你知道了,你连接到服务器的用户不允许对该表执行更改查询。
  • 很清楚,您没有用户“webuser”的权限,请使用管理员用户进入并授予他更改表“game_licenses”的权限

标签: mysql alter-table


【解决方案1】:

您没有这样做的权限。

确保您对该表具有alter 权限。

让超级用户(root)执行以下操作:

GRANT ALTER ON dbname.game_licences TO `webuser`@`localhost` 

请参阅:http://dev.mysql.com/doc/refman/5.1/en/grant.html

附:您确定希望普通用户能够发出alter 语句吗?
更好的选择可能是以 root 身份发出 alter 语句,或者甚至更好地创建一个对数据库具有完全权限但对任何其他数据库没有完全权限的管理员帐户。

【讨论】:

  • 是的,我会这样做的。感谢大家的回复。
猜你喜欢
  • 1970-01-01
  • 2020-10-27
  • 1970-01-01
  • 2011-09-16
  • 2021-05-18
  • 1970-01-01
  • 2021-07-11
  • 2011-04-27
  • 2010-10-04
相关资源
最近更新 更多