[英]Docker container connect to MySQL database locally -> redirect to another container
[英]Doctrine fails to connect to MYSQL database in linked docker container
我正在使用兩個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是否具有此模塊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.