在 mysql 中插入命令被拒绝

2022-08-30 15:53:04

我有一个数据库表,当我使用用户名和密码选择数据时,它可以工作,但是当我在具有相同用户名和密码的表中插入一些数据时,它会向我显示错误

INSERT command denied to user 'username'@'localhost' for table 'tablename'

我使用Google进行搜索,其他人对db大小也有同样的问题。我检查了我的数据库,当我直接转到phpmyadmin将数据插入表中时,它可以工作,但是当我从PHP脚本调用对表的查询时,它会给我错误。


答案 1

将我的网站从一个主机帐户移动到另一个托管帐户后,我遇到了类似的问题。问题是由引用旧数据库的 SQL 查询 () 引起的。将旧数据库替换为新的数据库名称(或完全删除数据库名称)解决了这个问题。但是这个错误让我的托管公司的支持人员陷入困境。INSERT

例:

INSERT INTO old_db_name.table_name ( ) VALUES ();

更改为:

INSERT INTO new_db_name.table_name ( ) VALUES ( );

希望这有帮助和有意义。


答案 2

这是一个权限问题。使用运行应用程序的用户登录到MySQL提示符,然后输入以下查询:

SHOW GRANTS;

这将显示当前用户拥有的权限(在MySQL语言中授予)。我的猜测是,您不会看到给定表的 INSERT 权限。您将需要 root 用户通过运行此查询来授予您的权限:

GRANT INSERT ON 'db'.'tablename' TO 'username'@'localhost'

推荐