2017-09-05 8 views
2

とJDBCの通信リンク障害私のJavaの春のアプリケーションは、私は、次の取得データベースに接続しようとします:MySQLのドッキングウィンドウコンテナ

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 

次のように春のアプリケーションでの接続URLは次のとおりです。

JDBC :mysqlの:// mysqldbserver:?3306/supersede_orchestrator_spring useSslオプション= falseを&自動再=真& failOverReadOnly = falseを& maxReconnects = 10

mysqldbserve私はすでに0.0.0.0にバインドアドレスを調整MySQLのドッキングウィンドウコンテナで

version : '3' 
services: 
    springappserver: 
    build: 
     context: . 
     dockerfile: web.dockerfile 
    ports: 
     - "8081:8080" 
    networks: 
     - mt-network 
    volumes: 
     - .:/vol/development 
    depends_on: 
     - mysqldbserver 
    mysqldbserver: 
    build: 
     context: . 
     dockerfile: db.dockerfile 
    ports: 
     - "13306:3306" 
    networks: 
     - mt-network 
    environment: 
     MYSQL_DATABASE: supersede_orchestrator_spring 
     MYSQL_USER: supersede_orch 
     MYSQL_PASSWORD: **** 
     MYSQL_ROOT_PASSWORD: **** 
    container_name: orchestrator_mysqldbserver 
networks: 
    mt-network: 
    driver: bridge 

:rがドッキングウィンドウ・コン設定からサービス名です。 supersede_orchユーザーの権限は%に設定されています。 springappserverドッカーコンテナに接続すると、telnet mysqldbserver 3306経由でデータベースにアクセスできます。また、スプリングドッカーのコンテナからコマンドラインでmysql -h mysqldbserver -u supersede_orch -pというデータベースに接続することもできます。 Javaスプリングアプリケーションは、他のドッカーコンテナで実行されているDBに接続できません。次のように

web.dockerfileに見えます:

FROM java:8-jre 

VOLUME /tmp 
ADD build/libs/feedback_orchestrator-2.0.0.jar app.jar 

RUN apt-get update 
RUN apt-get install mysql-client -y 
RUN apt-get install libmysql-java -y 

RUN bash -c 'touch /app.jar' 

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true","-jar","/app.jar"] 

だから、私はJavaが(私もまた失敗したmysqldbserverために対応するIPアドレスを使用)mysqldbserverを解決するためにIP4を使用していることを確認してみました。

最後に画像-aをドッキングウィンドウ:

42db4e656e6e  orchestrator_springappserver "java '-Djava.secu..." 16 minutes ago  Up 16 minutes    0.0.0.0:8081->8080/tcp orchestrator_springappserver_1 
e2b0b5cc15ac  orchestrator_mysqldbserver  "docker-entrypoint..." 2 hours ago   Up About an hour   0.0.0.0:13306->3306/tcp orchestrator_mysqldbserver 

あなたは問題が何ができるか任意のアイデアを持っていますか?ありがとうございました!

+0

springappserverの前にmysqldbserverを定義するか、springappserverだけを再起動すると、データベースサーバが起動する前にSpringブートが開始されているという問題が発生している可能性があります。 –

+0

いずれにしても、次の項目もチェックしてください:https://stackoverflow.com/questions/2983248/com-mysql-jdbc-exceptions-jdbc4-communicationsexception-communications-link-fai –

答えて

0

上記の設定は正しいです。私は瓶を再構築するのを忘れるほど馬鹿だった。したがって、jdbcのURLは更新されませんでした。今は完全に動作します。

0

このエラーが発生しました。私にとっては、MySQLの情報を持っているWAMPを起動するのを忘れていました。

関連する問題