【问题标题】:MySQL trigger on RDSRDS 上的 MySQL 触发器
【发布时间】:2012-06-27 04:00:59
【问题描述】:

我正在尝试创建一个将调用 php 脚本的 MySQL 触发器。我有一个在 RDS 中运行的 MySQL 服务器实例,并想使用 php 脚本向我的 SQS 消息传递系统发送消息。

  1. 我在哪里保存 php 脚本?
  2. 我是否需要在我的 EC2 实例上安装适用于 SQS 的 PHP SDK?

【问题讨论】:

    标签: php mysql triggers amazon-rds amazon-sqs


    【解决方案1】:

    是的,您可以正常使用触发器。 使用以下步骤:

    1. 在“参数组”菜单中更改变量:

      log_bin_trust_function_creators to "ON" or "1".
      
    2. 在实例中执行“修改”和“重启”。强制!

    3. 使用 mysql 客户端验证变量是否真的被修改。命令为:SHOW VARIABLES LIKE 'log_bin_trust%'

    现在,您可以正常创建触发器了。最大的困难是正确检查问题:您的实例应该使用该参数组,并且应该正确设置

    【讨论】:

      【解决方案2】:

      忘记触发器,尤其是在 Amazon RDS 上。

      使用 cron 每 5 分钟执行一次 PHP 脚本(例如),查找未发送的消息并使用 SQS 消息系统发送它们。

      【讨论】:

      • 有什么理由建议不要使用触发器?这是否存在已知问题?
      • 我认为应尽可能避免使用触发器。大量使用它们使调试变得很痛苦,因为它们以随机顺序执行,当您想知道为什么更改的数据看起来不像预期的那样时,您通常不会考虑它。
      • 不幸的是,它们是 MySQL 上 CHECK 约束的唯一替代品,真可惜
      猜你喜欢
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2015-11-09
      • 2011-05-11
      • 2018-03-06
      • 1970-01-01
      • 2019-08-07
      • 2014-12-06
      相关资源
      最近更新 更多