2012-05-07 3 views
2

Я имею проблему подключения к базе данных Amazon RDS от a Zend Framework 2 tutorial application.Amazon RDS и Zend Framework 2

Я получаю следующее сообщение об ошибке:

PDOException: SQLSTATE[28000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES) in C:\wamp\www\zf2-tutorial\vendor\ZendFramework\library\Zend\Db\Adapter\Driver\Pdo\Connection.php on line 214 

У меня нет проблем с подключением к базе данных с помощью MySQL Workbench или Жаба, поэтому я не думаю, что проблема безопасности БД является проблемой. Кроме того, приложение PHP также подключается к локальной базе данных.

Мне интересно, почему сообщение об ошибке говорит db_user'@'localhost. Разве он не должен говорить db_user'@'RDS host url?

Моя строка соединения:

'driver' => array(
'driver' => 'Pdo', 
'dsn' => 'mysql:hostname=xxxxxxxx.xxxxxxxxx.us-east-1.rds.amazonaws.com;dbname=zf2-tutorial', 
'username' => 'db_user', 
'password' => 'xxxxxxx', 
'driver_options' => array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' 
), 
+0

Имя пользователя/пароль неверны. –

+0

Ваш хост должен быть ip или веб-сайтом RDS. –

ответ

1

Добавьте переменную хоста в вашей конфигурации, согласно документации Zend по

'driver' => array(
    'driver' => 'Pdo', 
    'dsn' => 'mysql:hostname=xxxxxxxx.xxxxxxxxx.us-east-1.rds.amazonaws.com;dbname=zf2-tutorial', 
    'username' => 'db_user', 
    'password' => 'xxxxxxx', 
    'host' => 'xxxxxxxx.xxxxxxxxx.us-east-1.rds.amazonaws.com', // Possible here 
    'driver_options' => array(
     PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'' 
    ), 
), 
'host' => 'xxxxxxxx.xxxxxxxxx.us-east-1.rds.amazonaws.com', // Most likely here 
2

Оказывается, проблема заключается в строке уведомлений о доставке, в отличие от других серверов MySQL, Amazon RDS не понимает «имя хоста». Если он изменен на «host», он работает просто отлично!

'DSN' => 'MySQL: хозяин = xxxxxxxx.xxxxxxxxx.us-east-1.rds.amazonaws.com; имя_бд = ZF2-учебник',

Спасибо за все предложения.

1

The MySQL PDO DSN ожидает хост, не имя хоста:

http://php.net/manual/en/ref.pdo-mysql.connection.php

Я только сделал ту же ошибку после ZF2 учебник, сбитый с толку, почему конфигурации игнорирует изменение имени хоста, пока я не прочитал документ PHP PDO, не изменил его на хост (как и у вас) и волшебным образом все работало так, как должно было