我使用两个 Docker 容器,一个运行 ubuntu 和一个 apache Web 服务器,另一个运行 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 作为“主机”输入,并注释掉“密码”字段,因为它未被使用。
提前致谢
乔纳森
最佳答案
您的系统需要允许 pdo_mysql,这似乎不是连接问题,而是 php 配置问题。
你可以尝试在你的 php 容器中执行这个命令吗
php -i | grep pdo_mysql
只是为了了解php是否有这个模块
关于php - Doctrine 无法连接到链接的 docker 容器中的 MYSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37940788/