2016-04-04 6 views
1

私のスタックは、私のSymfonyアプリケーションのための1つのコンテナ、Mysqlのもう1つのコンテナです。 何らかの理由で、symfonyはエラーを次のようにMySQLのコンテナに接続することはできません。SymfonyドッカーコンテナはMysqlに接続できません

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

この

<?php 
$dbh = new PDO('mysql:host=database;dbname=mysite', 'mysite', 'password'); 

でsymfonyのコンテナの作品で、MySQLの接続をテストするための簡単なPHPファイルはここにあります私のsymfonyのパラメータ・ファイル:

database_driver: pdo_mysql 
database_host: database 
database_port: 3306 
database_name: mysite 
database_user: mysite 
database_password: password 

そしてここでは、私のドッキングウィンドウ・コンファイルです

site: 
    build: webapp 
    ports : 
    - "80:80" 
    volumes: 
    - /home/myuser/dev/mysite:/var/www/html/ 
    links: 
    - database 

database: 
    image: mysql:5.5 
    ports: 
    - "3306:3306" 
    environment: 
    - MYSQL_ROOT_PASSWORD=password 
    - MYSQL_DATABASE=mysite 
    - MYSQL_USER=mysite 
    - MYSQL_PASSWORD=password 

私はまた、エラーなしで新鮮なSymfonyプロジェクトを試しました。

+0

ダブルチェックのconfig /のparamファイル:

また、あなたのconfig.ymlファイルをチェックアウトすることができます。あなたのパラメータを無視しようとしています(ローカルに接続しようとしています) – JimL

+0

エラーメッセージにログインパラメータが含まれていて、パラメータファイルを変更したときに更新されています。 PDO - > __ construct( 'mysql:dbname = my ...'、 'mysite'、 'password') – loicb

+0

この答えは、 'mysql:'と 'host'の間にスペースを入れることを示唆しています。 http://stackoverflow.com/a/25432156/1811501 – thaJeztah

答えて

0

使用するデータベースドライバとポートを削除します。ポート転送を使用しなかったので、MySQLのポートを指定する必要はありません。また、あなたのドライバーに間違いがあります。ただpdoではなく、pdo_mysqldocumentation)であるだけです。

database_host: database 
database_name: mysite 
database_user: mysite 
database_password: password 

また、なぜdatabase_pathを指定しますか? MySQLはTCP/IPで呼び出すため、必要ありません。古いSQLiteデータベース?両方の環境のための

# Doctrine Configuration 
doctrine: 
    dbal: 
     driver: pdo_mysql 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 
     # if using pdo_sqlite as your database driver: 
     # 1. add the path in parameters.yml 
     #  e.g. database_path: "%kernel.root_dir%/data/data.db3" 
     # 2. Uncomment database_path in parameters.yml.dist 
     # 3. Uncomment next line: 
     #  path:  "%database_path%" 

    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
     auto_mapping: true 
+0

ここに私のドライバにタイプミスが含まれていますが、実際のパラメータファイルは問題ありません。 私はドライバとポートを削除しようとしましたが、それと同じメッセージです。もっと時間があるときは、私は新鮮なSymfonyプロジェクトを試みます。 – loicb

関連する問題