迁移到新主机后PDO异常

时间:2016-07-29 08:20:12

标签: php mysql pdo drupal-7

我们在Drupal 7中开发网站已有一段时间了,它在几台不同的机器/服务器上运行,一直运行良好,直到我们将其部署到实时服务器(共享主机)。

大部分时间它也在现场运行良好,但有时它只会发出此错误消息:

PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known in db_delete() (line 2484 of /is/htdocs/wp10970389_C2CBFVDOLQ/www/drupal7/includes/database/database.inc).
Additional
PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known in locale() (line 720 of /is/htdocs/wp10970389_C2CBFVDOLQ/www/drupal7/modules/locale/locale.module).
Uncaught exception thrown in session handler.
PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known in db_merge() (line 2448 of /is/htdocs/wp10970389_C2CBFVDOLQ/www/drupal7/includes/database/database.inc).
Uncaught exception thrown in shutdown function.
PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known in db_delete() (line 2484 of /is/htdocs/wp10970389_C2CBFVDOLQ/www/drupal7/includes/database/database.inc).

我们清除缓存时会出错。不是每一次,而是70%的尝试。在其他30%的缓存清理中运行良好。

当我尝试安装新模块时也会发生这种情况(我想在这种情况下也会完成缓存清除)并且安装失败。我看到模块已安装,但它的管理页面不存在(适用于分段)。

知道什么可能导致此错误吗?

1 个答案:

答案 0 :(得分:0)

解决!

问题是我有Drupal迁移模块,并且它被配置为仅在我的VM上使用第二个数据库(Drupal 6,来自旧站点)。在暂存第二个数据库配置也是错误的,但由于某种原因(我猜不同的PHP设置)它没有拍摄该错误。在现场它是。

而我不知道的是Drupal迁移模块正在连接第二个DB,即使它没有被直接使用,即清除缓存时 - 不知道为什么。