Sujet :

docker-compose: Problème de communication entre un microservice et BDD mysql

RÉSOLU

Liste des sujets Répondre Créer un sujet

Younes-Zirari

Membre depuis le 02/05/2020

actif

Bonjour,

J'essaye de lancer docker-compose.yml qui contient un MicroService et une BDD mysql.
J'ai un problème de communication entre le microservice et BDD
NB: j'ai utilise docker sous Windows avec WSL.
 Merci pour votre aide.

========Erreur===========
cinema-service_1  | 2020-05-06 16:11:54.096  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
db_1              | 2020-05-06T16:11:54.729925Z 9 [Note] Access denied for user 'root'@'172.28.0.3' (using password: NO)
cinema-service_1  | 2020-05-06 16:11:55.770 ERROR 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.
cinema-service_1  |
cinema-service_1  | java.sql.SQLException: Access denied for user 'root'@'172.28.0.3' (using password: NO)
cinema-service_1  |     at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
===================================
===========docker-compose.yml============
version: '3.3'
services:
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'cinema'
      # So you don't have to use root, but you can if you like
      #MYSQL_USER: 'cinema_user'
      # You can use whatever password you like
      #MYSQL_PASSWORD: 'cinema_root'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'rootroot'
    ports:
      # <Port exposed> : < MySQL Port running inside container>
      - 3306:3306
    expose:
      # Opensport 3306 on the container
      - 3306
      # Where our data will be persisted
    volumes:
      - db-volume:/var/lib/mysql
      
  cinema-service:
    image: yzirari/microservice-docker-cinema:0.0.1-SNAPSHOT
    environment:
      MYSQL_DATABASE: 'cinema'
    links:
      - db
    depends_on:
      - db

volumes:
  db-volume: {}
=======================

ajdaini-hatim

Membre depuis le 11/05/2019

rédacteur

Bonjour @Younes-Zirari bienvenue déjà dans la communauté devopssec. Pour répondre à ton problème puis-je voir le code qui te permet de te connecter  à ta base de données  mysql ?

Younes-Zirari

Membre depuis le 02/05/2020

actif

Merci @ajdaini-hatim, votre travail est remarquable :)

spring.datasource.url=jdbc:mysql://db:3306/cinema?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=

Younes-Zirari

Membre depuis le 02/05/2020

actif

spring.datasource.url=jdbc:mysql://db:3306/cinema?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=

Peux être un problème sur le forum. 

Ton message est affiché après mon dernier poste.

ajdaini-hatim

Membre depuis le 11/05/2019

rédacteur

Re @Younes-Zirari merci pour ta remarque ! En effet, je suis en train d'améliorer le site web notamment le système de Forum et de commentaires. Tu peux maintenant éditer ton commentaire si tu le souhaites sans charger entièrement  la page. Bref, pour revenir au sujet principal, je vais tester ton fichier docker-compose et revenir vers toi, une fois que j'ai plus d'informations 😀.

ajdaini-hatim

Membre depuis le 11/05/2019

rédacteur

Bonjour  @Younes-Zirari je ne retrouve pas ton image "yzirari/microservice-docker-cinema:0.0.1-SNAPSHOT" tu viens de la supprimer ?

Younes-Zirari

Membre depuis le 02/05/2020

actif

Salut @ajdaini-hatim.

J'ai fait un push. yzirari/microservice-docker-cinema est disponible sur hub.docker

ajdaini-hatim

Membre depuis le 11/05/2019

rédacteur

Salut @Younes-Zirari j'obtiens l'erreur suivante :

db_1              | 2020-05-13T11:57:59.782788Z 2 [Note] Access denied for user 'root'@'172.19.0.3' (using password: NO)
cinema-service_1  | 2020-05-13 11:58:00.833 ERROR 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.
cinema-service_1  | 
cinema-service_1  | java.sql.SQLException: Access denied for user 'root'@'172.19.0.3' (using password: NO)

2 questions, utilises-tu le mot de passe 'rootroot' dans ta variable spring.datasource.password ? Autre question, comment est architecturé ton serveur web et base de données, sont-ils tous les 2 sur le même serveur ou ils sont séparés sur un serveur chacun ?

Younes-Zirari

Membre depuis le 02/05/2020

actif

C'est le meme erreur que moi.

Comme j'ai commenté MYSQL_USER et MYSQL_PASSWORD alors les valeurs par défaut sont:  user= "root" et password = ""  (vide)

    environment:
      MYSQL_DATABASE: 'cinema'
      # So you don't have to use root, but you can if you like
      #MYSQL_USER: 'cinema_user'
      # You can use whatever password you like
      #MYSQL_PASSWORD: 'cinema_root'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'rootroot'

d'ou la conf suivante sur le microservice-docker-cinema:

spring.datasource.url=jdbc:mysql://db:3306/cinema?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=

- sont-ils tous les 2 sur le même serveur ou ils sont séparés sur un serveur chacun ?

pour moi 2 conteneurs (chaqu'un dans son propre conteneur)

modifié le

ajdaini-hatim

Membre depuis le 11/05/2019

rédacteur

@Younes-Zirari ta ligne MYSQL_ROOT_PASSWORD n'est pas commenté, donc tu dois utiliser ce mot de passe. De plus je pense que tu dois laisser ta chaîne de caractère vide car à vérifier le conteneur doit utiliser un mot de passe par défaut quand celui ci n'est pas spécifié.

Autre chose, quand tu dis que ce sont 2 serveurs séparés, tu veux dire par là que tu as ton conteneur cinema-service sur un serveur physique/virtuel différent de celui de ton conteneur db

Younes-Zirari

Membre depuis le 02/05/2020

actif

Hello hatim.

Effectivement ça fonctionne avec la conf suivante 😃

spring.datasource.url=jdbc:mysql://db:3306/cinema?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=rootroot

Les deux conteneur sont sur le meme serveur physique (machine local).

Merci pour ton aide 🙂

Répondre

vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire