Phalcon,Docker MySQL连接失败

时间:2016-12-29 21:23:34

标签: php mysql phalcon

所以我有3个docker容器,一个用PHP + PhalconPHP,一个用MySQL,另一个用webserver。现在在我的主机系统上,我可以连接到docker容器中的MySQL,我也可以使用以下代码连接PDO

new PDO('mysql:host=mysql;port=1024;dbname=database', 'root', 'password');

但由于某种原因,phalcon框架无法使用config.php文件连接到MySQL数据库,如此

return new \Phalcon\Config([
    'database' => [
        'adapter'     => 'mysql',
        'port'        => 1024,
        'host'        => 'mysql',
        'username'    => 'root',
        'password'    => 'password',
        'dbname'      => 'database',
        'charset'     => 'utf8',
    ],
]);

在这种情况下,出于某种原因,我得到Can't connect to MySQL server on 'mysql' (111 "Connection refused),即使我100%确定我可以实际连接(如前所述,与PDO连接)。我也试过硬编码实际的MySQL容器ip地址,但也没有运气。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

所以这似乎是一种愚蠢的错误"但这是解决方案。 显然,当您使用Phalcon Developer Tools来构建项目时,它不会使用端口配置初始化数据库,因为它完全忽略它。您可以通过进入app/config/services.php文件并更改db服务以包含端口配置来轻松解决此问题。

$connection = new $class([
    'host'     => $config->database->host,
    'port'     => $config->database->port,
    'username' => $config->database->username,
    'password' => $config->database->password,
    'dbname'   => $config->database->dbname,
    'charset'  => $config->database->charset
]);