2016-12-29 9 views
1

私は3つのドッカーコンテナを持っています.1つはPHP + PhalconPHP、もう1つはMySQL、もう1つはWebサーバーです。今私のホストシステム上で私は、ドッキングウィンドウコンテナでのMySQLに接続することができますし、私はまた、次のコードPhalcon、Docker MySQL接続に失敗する

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

を使用してPDOに接続することができます。しかし、何らかの理由でphalconフレームワークが使用してMySQLデータベースに接続することができませんこの場合はそう

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

ようconfig.phpファイルは、何らかの理由で私は私が実際に(PDO接続をする前に証明したように)接続することができ、100%確信しているにもかかわらず、Can't connect to MySQL server on 'mysql' (111 "Connection refused)を取得しています。私はまた、実際のMySQLコンテナのIPアドレスをハードコーディングしようとしましたが、運もありませんでした。

アイデア?

+0

[this](http://stackoverflow.com/questions/1420839/cant-connect-to-mysql-server-error-111)を見ましたか?類似しているようです。 IPアドレスをハードコードしたときのエラーは同じでしたか? – Terminus

+0

@Terminusはい、まったく同じエラーです。実際には、同じPHPファイルでPDOを使用して接続するだけでなく、ホストシステムから接続できるので、リンクしたときと同じ問題ではありません。 –

答えて

0

だから、愚かな「間違い」のように見えましたが、解決策があります。 Phalcon開発者ツールを使用してプロジェクトを足場に乗せると、明らかに無視されるので、ポート構成でデータベースは初期化されません。 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 
]); 
関連する問題