连接到Drupal 7上的外部数据库(其他主机)

时间:2013-06-28 16:17:00

标签: php mysql drupal-7 connect migrate

我想连接到Drupal上另一台主机(不是localhost)上的外部数据库,因为我想使用迁移模块迁移内容。

我的settings.php中的那些

$databases['for_migration']['default'] = array(
  'driver' => 'mysql',
  'database' => 'dbname',
  'username' => 'username',
  'password' => 'password',
  'host' => 'other-host.com',
  'prefix' => '',
  'port' => '',
);

另一种方法是通过以下方式调用数据库:

$query = Database::getConnection('default', 'for_migration')

显示出现的错误:

PDOException: SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'host.com' (13) in    MigrateMigration->__construct() (Zeile 16 von /var/www/html/x/sites/all/modules/migrate_x/x.inc).

因此,如果我在localhost上调用数据库,则没有错误,所有迁移都完美无缺。但我无法连接到外部主机上的数据库。

2 个答案:

答案 0 :(得分:1)

这可能是由于: 1)连接限制(例如防火墙块)。 2)您使用的帐户不允许在“localhost”之外登录。在这种情况下,您必须在'mysql'数据库的'user'表中编辑您的帐户主机名掩码,以查找'%'(即任何地址)或您正在访问的计算机IP地址。

答案 1 :(得分:1)

这是我的错。我已将远程服务器上的httpd_can_network_connect设置为on。

但解决方案是将其设置在我的本地计算机上。之后我可以连接到外部主机。所以这是一个SELinux问题。

感谢@fobia