2016-06-21 124 views
0

我使用两个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作为“主机”,并将“密码”字段注释为未使用。

在此先感谢

乔纳森

回答

0

你必须让你的系统上PDO_MYSQL,它似乎不连通的问题,而是一个PHP配置问题。

你可以尝试做你的php容器内该命令

php -i | grep pdo_mysql 

只是想了解如果PHP有这个模块

+0

我在/ var/www目录中使用的命令,但它并没有给我任何输出不幸:/ – flautzr