我使用两个Docker容器,一个运行ubuntu和一个apache two服务器,另一个运行mysql服务器。容器是链接的,我可以从ubuntu容器连接到mysql服务器。对于我在ubuntu容器中使用的连接:
mysql -u root -h mysql其中第二个'mysql‘是容器的名称。我也可以通过容器id连接到它,这样连接就像从windows环境连接到数据库一样有效。
不起作用的是原理到ubuntu容器中的PHP应用程序中的数据库的连接。
配置如下所示:
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => array(
'host' => 'mysql',
'port' => '3306',
'user' => 'root',
'password' => '',
'dbname' => 'db_name',
'charset' => 'utf8',
)
)
),
)但是我得到了错误信息
Uncaught PDOException: could not find driver in /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php和
Zend\ServiceManager\Exception\ServiceNotCreatedException: An abstract factory could not create an instance of doctrine.entitymanager.ormdefault(alias: doctrine.entitymanager.orm_default). in /var/www/vendor/zendframework/zend-servicemanager/src/ServiceManager.php 有人知道如何解决这个问题吗?错误的确切来源是什么?
我已经尝试将容器ID设置为'host‘,并注释掉了'password’字段,因为它没有被使用。
提前感谢
乔纳森
发布于 2016-06-21 17:55:30
你需要在你的系统上允许pdo_mysql,这似乎不是一个连接问题,而是一个php配置问题。
您可以尝试在php容器中执行此命令吗?
php -i | grep pdo_mysql只是为了了解php是否有这个模块。
https://stackoverflow.com/questions/37940788
复制相似问题