0

AWS に設定された仮想ホストに既存の drupal コードベースをアップロードしました。「データベースに接続できません」と表示される

データベース「dbname」を作成し、ssh 経由で正常に接続できます。しかし、接続する settings.php を取得できません。私が知る限り、mysql ユーザーはリモートで db にアクセスするために必要なすべての権限を持っています。

私が持っているもの

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

これは、正常に接続する私たちの drupal 7 サイトを使用した settings.php の例です。

$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

確認すべき点がいくつかあります。

  • サーバーからのアクセスを許可するためにセキュリティグループを開いていますか(他の回答でボブキニーが言ったように)?
  • 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 インスタンスからのアクセスを許可するようにセキュリティ グループを設定していないようです。DB セキュリティ グループに、EC2 インスタンス/セキュリティ グループからのトラフィックを許可するイングレス ルールがあることを確認する必要があります。

DB インスタンスへのネットワークアクセスを制御するにはどうすればよいですか?

于 2012-10-18T03:50:25.083 に答える
0

間違ったホスト名を指しています。

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

個々のデータベース インスタンスにはそれぞれ独自のホスト名があります。AWS コンソールで調べることができます。現在指しているものは、RDS Web サービス API エンドポイントを指すつもりだったようです。

于 2012-11-02T21:34:51.443 に答える