我正在尝试连接AWS RDS到我的AWS EC2应用程序,这是一个使用doctrine模块连接到mysql的zend框架应用程序。我可以成功地从mysql Workbench连接到我的AWS RDS数据库。任何帮助将不胜感激。 她是一些堆栈痕迹:
PDOException
/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:40
SQLSTATE[HY000] [2002] Connection timed out
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php(40): PDO->__construct('mysql:host=doct...', 'user', 'password', Array)
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php(41): Doctrine\DBAL\Driver\PDOConnection->__construct('mysql:host=doct...', 'user', 'password', Array)
vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(356): Doctrine\DBAL\Driver\PDOMySql\Driver->connect(Array, 'user', 'password', Array)
vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(680): Doctrine\DBAL\Connection->connect()
vendor/doctrine/orm/lib/Doctrine/ORM/Query/Exec/SingleSelectExecutor.php(50): Doctrine\DBAL\Connection->executeQuery('SELECT COUNT(*)...', Array, Array, NULL)
vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(286): Doctrine\ORM\Query\Exec\SingleSelectExecutor->execute(Object(Doctrine\DBAL\Connection), Array, Array)
vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(794): Doctrine\ORM\Query->_doExecute()
vendor/doctrine/orm/lib/Doctrine/ORM/AbstractQuery.php(598): Doctrine\ORM\AbstractQuery->execute(NULL, 3)
答案 0 :(得分:0)
这是一个复杂的查询吗?用户是否具有执行该查询的适当权限?
不要认为Doctrine会导致问题,但它是您执行查询的主机的出站防火墙。这是与Workbench执行的机器相同吗?
答案 1 :(得分:0)
我在AWS中的应用程序仅侦听我的ip,并在将此更改为任何IP后,问题得以解决。 但是对于这个问题的未来访问者,我应该说这个学说试图在没有lac的情况下连接,直到它耗尽时间(30sk),并且对于访问者我应该说确保你的Instance和RDS正在互相监听,即。拥有合适的安全组。有关详细信息,请查看:aws security groups :)