2014-10-07 39 views
0

我在更新MySQL中的表中的行有一些麻烦。触发器被拒绝为不同的用户比我登录

当我运行update table table_name set y="value" where z like "%something",响应是:

ERROR 1142 (42000): TRIGGER command denied to user 'coworker'@'localhost' for table 'table_name'

的问题是,我的身份登录MADS @本地。我以root身份登录时收到相同的错误消息,并尝试执行相同的操作。

有谁知道我会如何解决这个问题?

+1

您可以放弃触发器。听起来很奇怪,root无法运行它。 – 2014-10-07 11:38:32

回答

1

您的触发器是与用户同事一起创建的。

我想你导入了DEFINER定义(包含同事)的转储。我会从转储中删除#DEFINER定义并再次导入它。在这种情况下,转储将重新创建定义器,但与运行导入的用户重新创建定义器。在此之后,被拒绝的信息不应再发生。

+0

谢谢!我现在要试试这个。 – madshvero 2014-10-07 11:43:46

+1

这工作。非常感谢你!我使用[here](http://dbperf.wordpress.com/2010/04/12/removing-definer-from-mysql-dump/)中的perl脚本来帮助我删除定义者行。 – madshvero 2014-10-07 12:58:57

相关问题