无法在Google Cloud中的MySql表上创建触发器

时间:2017-11-17 21:24:34

标签: mysql triggers google-cloud-sql user-permissions

CREATE TRIGGER trigger_LocationType_Insert
BEFORE UPDATE ON LocationType
FOR EACH ROW
SET NEW.NAME = ''

返回此错误:

[HY000] [1419]您没有SUPER权限并启用了二进制日志记录(您可能*想要使用安全性较低的log_bin_trust_function_creators变量)

我知道这是因为即使是root用户“也拥有除SUPER和FILE之外的所有权限。” https://cloud.google.com/sql/docs/mysql/users

我认为如果我可以“将log_bin_trust_function_creators设置为1”那么它就可以工作(该用户确实具有CREATE TRIGGER权限)。但是,我不知道如何在Google Cloud SQL控制台或sql语句中执行此操作。

如何在此环境中创建TRIGGER?

1 个答案:

答案 0 :(得分:4)

此页面介绍了如何更改Google Cloud实例的MySQL配置选项:https://cloud.google.com/sql/docs/mysql/flags

  

选择要打开其实例概述页面的实例。

     

已设置的数据库标志列在数据库标志部分下。

您必须使用其UI更改全局变量,因为您无法使用SET GLOBAL而无需SUPER权限。

log_bin_trust_function_creators选项列在支持的配置选项中,您可以在我上面链接的页面上的UI中进行更改。

要详细了解此错误,请参阅https://dev.mysql.com/doc/refman/5.7/en/stored-programs-logging.html