0

将现有的 drupal 代码库上传到在 AWS 上设置的虚拟主机。它显示“无法连接到数据库”

我创建了数据库“dbname”,并且可以通过 ssh 正常连接。但无法获取settings.php 进行连接。据我所知,mysql用户拥有远程访问数据库所需的所有权限。

是)我有的

$db_url = 'mysql://username:password@us-west-rds.amazonaws.com/dbname';

这是 settings.php 的示例,它带有我们的 drupal 7 站点,可以很好地连接

$databases = array (
  'default' => 
  array (
    'default' => 
    array (
      'database' => 'dbname',
      'username' => 'dbuser',
      'password' => 'password',
      'host' => 'us-west-rds.amazonaws.com',
      'port' => '3306',
      'driver' => 'mysql',
      'prefix' => '',
    ),
  ),
);
4

4 回答 4

4

有几件事需要检查:

  • 您是否打开了安全组以允许从您的服务器访问(如 Bob Kinney 在另一个答案中所说)?
  • 您是否在服务器上设置了防火墙以阻止连接到您的 RDS 实例?
  • 您的用户是否有足够的权限连接到您的数据库?

最简单的调试方法是使用控制台mysql命令并尝试从那里连接到您的实例:

mysql dbname -u username -p password -h db01b2.ck1dmcn6kfws.us-west-1.rds.amazonaws.com

如果这不起作用,请检查上面给出的要点。如果这有效且仅在 Drupal 中无效,请检查您的 PHP 代码和/或 Drupal 配置。

于 2012-10-18T07:33:23.537 回答
2

听起来您可能没有设置安全组以允许从您的 EC2 实例进行访问。您需要确保您的数据库安全组具有允许来自您的 EC2 实例/安全组的流量的入口规则。

如何控制对我的数据库实例的网络访问?

于 2012-10-18T03:50:25.083 回答
0

您指向错误的主机名。

'host' => 'us-west-rds.amazonaws.com'

每个单独的数据库实例都有自己的主机名。您可以在 AWS 控制台中查找它。您当前指向的那个看起来像您打算指向 RDS Web 服务 API 端点。

于 2012-11-02T21:34:51.443 回答
-1

您可能还想检查...

setsebool httpd_can_network_connect_db on

于 2018-04-05T18:10:46.290 回答