php - Amazon RDS 和 Zend Framework 2

标签 php mysql amazon-web-services amazon-rds zend-framework2

我从 a Zend Framework 2 tutorial application. 连接到我的 Amazon RDS 数据库时遇到问题

我不断收到以下错误:

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 或 Toad 连接到数据库没有问题,因此我认为数据库安全组不是问题所在。此外,PHP 应用程序也可以很好地连接到本地数据库。

我想知道为什么错误消息显示db_user'@'localhost。难道不应该是 db_user'@'RDS 主机 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\''
),

最佳答案

事实证明,问题出在 dsn 字符串中,与其他 MySQL 服务器不同,Amazon RDS 不理解“主机名”。如果更改为“主机”,它就可以正常工作!

'dsn' => 'mysql:主机=xxxxxxxx.xxxxxxxxx.us-east-1.rds.amazonaws.com;dbname=zf2-tutorial',

感谢您的所有建议。

关于php - Amazon RDS 和 Zend Framework 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10475398/

相关文章:

php - 用于搜索文本中的单词而不是字符串的一部分的正则表达式 (preg_match_all)

javascript - 即使 json_encode 正确且一切正常,Ajax 请求也始终会引发错误

javascript - 永久保存jquery修改的页面

php - 如何在mysql中检索带有发送者和接收者用户名的聊天消息

ios - 使用 IAM 用户凭证 iOS 的 AWS iOT 登录问题

php - 将开发团队从 FTP 转变为版本控制系统

mysql - 从与外键链接的一个表到多个表的 SELECT 查询

amazon-web-services - 使用 s3-dist-cp 跨 AWS 账户复制 S3 文件

javascript - 通过 Twitter 注册的用户的用户池?

php - 如何将 PHP 库添加到我在 Eclipse 中的基本远程项目?