2016-12-29 4 views
1

그래서 3 개의 도커 컨테이너가 있습니다. 하나는 PHP + PhalconPHP이고, 하나는 MySQL이 있고 다른 하나는 웹 서버입니다. 이제 내 호스트 시스템에서 I는 고정 표시기 컨테이너에 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 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 
]); 
관련 문제