Google CloudSQL第二代创建功能无法正常工作

时间:2016-08-31 04:25:27

标签: mysql google-cloud-platform google-cloud-sql

对于Google CloudSQL第二代实例,启用了故障转移复制。之后,当尝试导入数据库时​​,不允许创建该过程。收到以下错误。

  

错误代码:1419。您没有SUPER权限和二进制文件   已启用日志记录(您可能希望使用较不安全的日志   log_bin_trust_function_creators变量)

具有故障转移功能的CloudSQL是否支持功能?

示例执行查询

DELIMITER ;;
CREATE FUNCTION `stutzen`(amount INT) RETURNS int(11)
    DETERMINISTIC
BEGIN
    DECLARE charges FLOAT DEFAULT 1.0;
    SELECT valuesettings INTO charges FROM dreamer_tbl WHERE namesettings='stutzen.co';
    RETURN FLOOR((amount / 100) * charges) ;
END ;;
DELIMITER ;

5 个答案:

答案 0 :(得分:1)

这不是存储过程,即用户定义的函数。 您需要将此UDF重写为存储过程,这将起作用。

答案 1 :(得分:1)

Google Cloud SQL支持存储过程和函数。

在您的情况下,问题似乎是您正在尝试导入具有某种需要SUPER权限的例程的sql文件,并且这是不允许的。

答案 2 :(得分:0)

我尝试使用SET GLOBAL log_bin_trust_function_creators,它应该允许创建没有SUPER权限的函数,但是在Cloud SQL中也不允许设置该变量。它需要SUPER权限进行设置。

答案 3 :(得分:0)

您应该运行:

gcloud sql instances patch [INSTANCE_NAME] --database-flags
log_bin_trust_function_creators=ON

here

答案 4 :(得分:0)

您只需要将'log_bin_trust_function_creators'设置为ON

为此,请打开https://console.cloud.google.com

选择SQL

选择您的实例

选择“编辑”

DB信号

添加: log_bin_trust_function_creators上的

general_log on

保存