由于许多连接错误,Drupal网站被阻止 - 网站脱机

时间:2011-06-08 02:03:52

标签: database drupal drupal-6 amazon-rds

有时,从Drupal 6.20系统到我们的Mysql数据库的数据库连接数达到100-150,过了一段时间网站才会脱机。尝试手动连接到Mysql时的错误消息“由于许多连接错误而被阻止。使用'mysqladmin flush-hosts'解锁”。由于数据库托管在Amazon RDS上,因此我无权发出此命令,但我可以重新启动数据库,一旦重新启动,网站将再次正常工作。直到下一次。

Drupal在脱机前报告多个错误,有两种类型:

  

重复录入   '279890-0-all'为关键   'PRIMARY'查询:   node_access_write_grants / *访客:   node_access_write_grants * / INSERT   INTO node_access(nid,realm,gid,   grant_view,grant_update,   grant_delete)VALUES(279890,   'all',0,1,0,0)in   /var/www/quadplex/drupal-6.20/modules/node/node.module   在第2267行。

     

超过锁定等待超时;尝试   重启事务查询:   content_write_record / *访客:   content_write_record * / UPDATE   content_field_rating SET vid = 503621,   nid = 503621,field_rating_value =   1212 WHERE vid = 503621 in   /var/www/quadplex/drupal-6.20/sites/all/modules/cck/content.module   在1213行。

这两个查询中的nids始终相同,并且指的是自定义模块经常自动更新的两个节点。我可以在Apache日志中追踪这些错误与异常多的Web请求之间的关联。我会理解,因为这个网站会变慢。但是:

  1. 为什么会出现这些错误,如何解决?在我看来,这是与几个尝试同时更新同一节点的Web请求有关。但是,Drupal肯定应该通过锁定表等来解决这个问题吗?或者我应该以某种特殊方式处理它?<​​/ p>

  2. 尽管Web负载较高,为什么数据库完全锁定并需要重新启动?如果网站仍然可以访问Mysql并不是更好,所以,一旦负载较低,它可以再次提供页面?这有什么设置吗?

  3. 谢谢!

1 个答案:

答案 0 :(得分:3)

可以解决这三件事中的一件或全部:

  1. 你没有磁盘空间吗?从ssh,键入命令df -h并确保您仍有磁盘空间。

  2. 桌子是否损坏?在phpMyAdmin或CLI指令中修复表:http://dev.mysql.com/doc/refman/5.1/en/repair-table.html

  3. 您是否使用/etc/my.cnf对您的mysql进行了性能调整?有关更多提示,请参阅此处:http://drupal.org/node/51263