移动drupal站点PDO异常后的Mysql异常:SQLSTATE [HY000] [2013]

时间:2011-09-01 12:20:02

标签: php mysql drupal

我刚刚将我的drupal网站移动到另一个域/主机

我移动了数据库,现在移动了我的所有网站。但是当我访问网站(juniorsteps.be)时,我得到以下异常:

  

PDOException:SQLSTATE [HY000] [2013]在“读取初始通信数据包”时失去与MySQL服务器的连接,系统错误:111在lock_may_be_available()中(/ home / sites / webhosting / juniorsteps / juniorsteps / www /的第165行)包括/ lock.inc)。

我用Google搜索,但我仍然找不到解决方案。

希望有人可以提供帮助。

更新

从线上问到代码。这是以下功能的第一行:

function lock_may_be_available($name) {
  $lock = db_query('SELECT expire, value FROM {semaphore} WHERE name = :name', array(':name' => $name))->fetchAssoc();
  if (!$lock) {
    return TRUE;
  }
  $expire = (float) $lock['expire'];
  $now = microtime(TRUE);
  if ($now > $expire) {
    // We check two conditions to prevent a race condition where another
    // request acquired the lock and set a new expire time. We add a small
    // number to $expire to avoid errors with float to string conversion.
    return (bool) db_delete('semaphore')
      ->condition('name', $name)
      ->condition('value', $lock['value'])
      ->condition('expire', 0.0001 + $expire, '<=')
      ->execute();
  }
  return FALSE;
}

但说实话,我不认为我的代码中存在错误,因为它在我的开发服务器上运行良好。

3 个答案:

答案 0 :(得分:6)

检查你的settings.php

  $databases = array (

  'default' => 

   array (

    'default' =>

    array (

      'database' => '333333',

      'username' => '333333',

      'password' => '3333333',

      'host' => '122.124.12.09', // check host -> maybe not localhost

      'port' => '3304',  // check port!

      'driver' => 'mysql',

      'prefix' => '',

      ),

    ),

   );

答案 1 :(得分:1)

我有同样的问题。该站点的开发版本已设置为与Acquia开发环境一起使用。 settings.php不正确。从sites/default/settings.php文件的底行删除所有Acquia特定信息。

答案 2 :(得分:0)

这个答案可能会对你有所帮助:
"Lost connection to MySQL server" when trying to connect to remote MySQL server

关于错误2013的MySQL文档的阅读:server has gone away
http://dev.mysql.com/doc/refman/5.0/en/gone-away.html