簡體   English   中英

Doctrine無法連接到鏈接的Docker容器中的MYSQL數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM