【问题标题】:Triggers cloud sql 2nd generation触发 cloud sql 第二代
【发布时间】:2017-01-06 08:53:59
【问题描述】:

我正在尝试使用当前在第一代云 SQL 上运行的数据库转储填充第二代云 sql 实例 (v5.7)。它有一些触发器:

    /*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `resourcetypetransaction_AFTER_INSERT` AFTER INSERT ON `resourcetypetransaction` FOR EACH ROW
  BEGIN
    INSERT INTO `resourcetypetransactionlog` SELECT *
                                             FROM `resourcetypetransaction`
                                             WHERE id = NEW.id;
  END */;;

尝试将数据库插入 2nd gen 时的结果是:

shinkansen:sql ameyer$ cat gae_2016-08-30T08\:21\:33.sql | mysql -u root -pxxxx -h xxxx napoleon;
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1419 (HY000) at line 1067: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

有没有办法在第二代启用这样的触发器?

干杯, 安德烈斯

【问题讨论】:

    标签: google-cloud-sql


    【解决方案1】:

    我遇到了同样的问题,在阅读了所有可以阅读的论坛之后,解决方案是从 Google Cloud SQL 而不是控制台在控制面板中设置变量。

    1. 在实例页面输入:Instances

    2. 选择您的实例并进行编辑。 (点击三个点按钮)。

    3. 转到最后一个选项,“Marcas de Cloud SQL”的标志。

    4. 将您的变量置于 ON 状态。

      log_bin_trust_function_creators -> ON

    5. 我还必须等待几分钟才能进入 Cloud Shell。 (我没有足够的声誉来输入链接,但在 google 中查找“在 Cloud Shell 中使用 mysql 客户端”

    2nd Generation Cloud SQL

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。下面的操作呢? 1. 在 Cloud Strage 上下载导出的 .sql 文件 2. 在 CLI 上以 root 身份连接到 Cloud SQL 3. 导入(例如 source xxx.sql) 效果很好。

      【讨论】:

        【解决方案3】:

        由于某些触发器在启用复制时会产生不一致的结果,因此默认配置中不允许使用它们。

        你有两个选择:

        【讨论】:

        • 这不起作用,我将 /*!50017 DEFINER=root@%*/ 替换为 /*!50017 */ 后仍然出现同样的错误
        • 现在可以正常工作了。我在触发器中有一个“now()”,这会在主从服务器上创建一个稍微不同的时间,但我认为这不是问题。我希望 Cloud SQL 能尽快支持多个 sql_mode 标志,这样我们也可以编写干净的日期代码。
        • 即使设置了这个选项,我发现我必须将/*!50017 DEFINER='root'@'localhost'*/ 更改为/*!50017 DEFINER='root'@'%'*/
        猜你喜欢
        • 1970-01-01
        • 2023-03-09
        • 2017-02-09
        • 2017-10-20
        • 2016-04-28
        • 2016-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多