Doctrine无法连接到链接的Docker容器中的MYSQL数据库
问题描述:
我使用两个Docker容器,一个运行ubuntu和apache webserver,另一个运行mysql服务器。容器是链接的,我可以从ubuntu容器连接到mysql服务器。对于我在Ubuntu容器中使用的连接:Doctrine无法连接到链接的Docker容器中的MYSQL数据库
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作为“主机”,并将“密码”字段注释为未使用。
在此先感谢
乔纳森
答
你必须让你的系统上PDO_MYSQL,它似乎不连通的问题,而是一个PHP配置问题。
你可以尝试做你的php容器内该命令
php -i | grep pdo_mysql
只是想了解如果PHP有这个模块
我在/ var/www目录中使用的命令,但它并没有给我任何输出不幸:/ – flautzr