(Docker + SpringBoot + Mysql) Mysql соединение отказано - PullRequest
0 голосов
/ 23 марта 2020

Описание проблемы

Контейнер Spring Boot (приложение) не может подключиться к контейнеру "mysql"

Вывод проблемы

Причина: com. mysql .jdb c .exceptions.jdbc4.MySQLNonTransientConnectionException: Не удалось создать соединение с сервером базы данных. Попытка переподключения 3 раза. Сдача.

application.properties

spring.datasource.username = root
spring.datasource.url = jdbc:mysql://mysql:3306/fms?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&useSSL=false
spring.datasource.password = manager@123

docker -compose.yml

version: '3.7'
services:  
    mysql:
        image: mysql:latest
        restart: always
        command: --default-authentication-plugin=mysql_native_password
        ports:
            - "33061:3306"
        networks:
            - spring-boot-mysql-network
        environment:
            MYSQL_DATABASE: fms
            MYSQL_ROOT_PASSWORD: manager@123
        volumes:
            - ./database_storage:/docker-entrypoint-initdb.d

    app:
        build:
            context: .
            dockerfile: app.Dockerfile
        ports: 
            - "8091:8080"
        networks:
            - spring-boot-mysql-network
        depends_on: 
            - mysql

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: phpmyadmin
        restart: always
        depends_on: 
            - mysql
        environment: 
            PMA_HOST: database
            PMA_PORT: 3306
        ports:
            - "9091:80"

networks:
    spring-boot-mysql-network:
        driver: bridge

Ответы [ 3 ]

0 голосов
/ 23 марта 2020

Не могли бы вы попытаться обновить mysql версию соединителя до mysql-connector-java-8.0.11

0 голосов
/ 23 марта 2020

Я сделал глупую ошибку.

Я обновлял свой файл application.property и docker -составлял --build. Но я никогда не перепаковывал файл войны. Поэтому я читал свой старый файл войны и, следовательно, чтение моего старого файла свойств

0 голосов
/ 23 марта 2020

Ваши настройки выглядят правильно для меня. Однако вы используете самое последнее docker изображение MySQL (которое на момент написания статьи составляло 8.0.x). Таким образом, полученное вами исключение указывает на проблему совместимости между вашим MySQL разъемом и MySQL серверной версией. Какую версию MySQL Connector / J вы используете в своем приложении Spring Boot? Вам необходимо обновить разъем или понизить версию образа MySQL docker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...