2012-06-25 62 views
0

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

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

回答

0

忘掉触发器,特别是在Amazon RDS上。

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

+0

建议不要使用触发器的任何理由?这有没有一个已知的问题? – user1481054

+0

我认为应尽可能避免触发器。沉重地使用它们使调试在屁股疼痛,因为它们随机顺序执行,当你想知道为什么变化的数据看起来不像预期的时候,你经常不会想到它。 – CodeZombie

+0

不幸的是,它们是CHECK约束条件下MySQL的唯一替代品,这是一个真正的耻辱 –

1

是的,你可以正常使用触发器。 使用此步骤:在 “参数组” 菜单

  1. 改变变量:

    log_bin_trust_function_creators to "ON" or "1". 
    
  2. 做一个 “修改” 和 “重启” 的实例。强制性!

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

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