Docker compose для mysql и весеннего приложения дает отказ в доступе - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть docker compose для MySQL + Spring boot приложения:

Вот так выглядит мой docker-compose.yaml

version: "3.3"
services:
  docker-mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 'pass'
      MYSQL_DATABASE: 'test'
    volumes:
      - /var/lib/mysql
    ports:
      - 3306:3306
  my-app:
    build: .
    depends_on:
      - docker-mysql
    ports:
      - 8080:8080
restart: on-failure

А это мой Dockerfile:

FROM openjdk:8
EXPOSE 8080
ADD /target/app-0.0.1.jar app.jar
ENTRYPOINT ["java","-jar","app.jar"]

Это application.properties моего приложения:

spring.jpa.database=MYSQL
spring.jpa.show-sql=true
spring.datasource.url=jdbc:mysql://docker-mysql:3306/test?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=none
spring.datasource.driverClassName=com.mysql.jdbc.Driver

Но когда я запускаю контейнеры с docker-compose up, приложение сталкивается с отказом в доступе:

Access denied for user 'root'@'172.20.0.3' (using password: NO)

В журналефайл mysql создан с пустым паролем!

[Warning] root@localhost is created with an empty password !

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Вам нужен доступ к MySQL с пользователем root, поэтому выполните команду ниже с пользователем root MySQL:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.20.0.3'
    IDENTIFIED BY 'pass' 
    WITH GRANT OPTION;
FLUSH PRIVILEGES;

Пожалуйста, проверьте!

0 голосов
/ 30 сентября 2018

Вы должны изменить следующие свойства, чтобы использовать пользователя и пароль, который вы определили в docker-mysql.

spring.datasource.password=pass

Кроме того, добавьте опцию links в ваше приложение весенней загрузки.

depends_on:
  - docker-mysql
links:
  - docker-mysql

Не думаю, что это имеет значение, но в примерах документации используется пароль без кавычек.Если выше не получается, попробуйте это тоже.

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