【问题标题】:Can't create Trigger on MySql table within Google Cloud [duplicate]无法在 Google Cloud 中的 MySql 表上创建触发器 [重复]
【发布时间】:2018-05-01 18:04:59
【问题描述】:
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 语句中执行此操作。

你如何在这个环境中创建触发器?

【问题讨论】:

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


【解决方案1】:

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

选择实例以打开其实例概览页面。

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

你必须使用他们的 UI 来改变全局变量,因为没有 SUPER 权限你不能使用SET GLOBAL

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

要了解有关此错误的更多信息,请参阅https://dev.mysql.com/doc/refman/5.7/en/stored-programs-logging.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-12
    • 2016-01-25
    • 2020-11-22
    • 1970-01-01
    • 2018-07-15
    • 1970-01-01
    • 2016-01-09
    相关资源
    最近更新 更多