IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Problème d'accès à une base MariaDB depuis une image Docker


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 108
    Par défaut Problème d'accès à une base MariaDB depuis une image Docker
    Hello,

    Je tente d'héberger un site perso en Java sur mon NAS Synology DS223 qui tourne sous DSM7.2. Pour cela j'utilise Container Manager qui permet de monter des images Docker et MariaDB pour la base de données.
    Mon problème est le suivant : j'ai un compte root sur MariaDB dont j'ai défini le mot de passe. Pour des raisons de sécurité et parce qu'à terme je vais créer plusieurs bases de données sur MariaDB, je voudrais configurer un compte utilisateur pour mon application Java qui tourne sous Docker.

    J'ai donc créé un compte nominatif avec les commandes suivantes, connecté en root sur la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE USER 'monutilisateur'@'localhost' IDENTIFIED BY '<password>';
    GRANT ALL PRIVILEGES ON mabase.* TO 'monutilisateur'@'localhost' IDENTIFIED BY '<password>';
    J'y accède bien avec un client MariaDB en tant que monutilisateur depuis mon PC sur le réseau local.

    Mais ça ne fonctionne pas pour mon site.

    Si j'utilise le compte root, mon application démarre correctement et accède bien à la base.
    Voici la configuration associée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    spring:
      datasource:
        driverClass: org.mariadb.jdbc.Driver
        url: jdbc:mariadb://192.168.1.49:3306/cure?autoReconnect=false&zeroDateTimeBehavior=convertToNull&useSSL=false&useTimezone=true&serverTimezone=Europe/Paris
        username: root
        password: <password>
    Dans les logs, je n'ai pas d'erreur :

    2024-10-30 10:24:39 [main] INFO org.flywaydb.core.FlywayExecutor:line - Database: jdbc:mariadb://192.168.1.49/ (MariaDB 10.11)
    Par contre si je configure l'application de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    spring:
      datasource:
        driverClass: org.mariadb.jdbc.Driver
        url: jdbc:mariadb://192.168.1.49:3306/cure?autoReconnect=false&zeroDateTimeBehavior=convertToNull&useSSL=false&useTimezone=true&serverTimezone=Europe/Paris
        username: monutilisateur
        password: <password>
    J'ai le message d'erreur suivant, qui n'est pas du tout clair :

    SQL State : 28000
    Error Code : 1045
    Message : (conn=10) Access denied for user 'root'@'172.17.0.2' (using password: YES)
    Je ne comprends pas pourquoi il indique root alors que je tente en monutilisateur ni à quoi correspond l'IP 172.17.0.2, qui n'est ni sur mon réseau local, ni bien sûr mon IP publique... Le mot de passe est évidemment correct.

    Par acquis de conscience, j'ai fait un test avec une IP bidon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    spring:
      datasource:
        driverClass: org.mariadb.jdbc.Driver
        url: jdbc:mariadb://192.168.1.50:3306/cure?autoReconnect=false&zeroDateTimeBehavior=convertToNull&useSSL=false&useTimezone=true&serverTimezone=Europe/Paris
        username: root
        password: <password>
    J'obtiens l'erreur suivante, ce qui est plutôt logique :
    SQL State : 08000
    Error Code : 0
    Message : Socket fail to connect to host:address=(host=192.168.1.50)(port=3306)(type=primary). No route to host
    Est-ce qu'une âme charitable aurait une idée de ce qu'il se passe ici ?

    Merci pour votre aide !

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 956
    Par défaut
    Citation Envoyé par Shuret Voir le message
    Pour cela j'utilise Container Manager qui permet de monter des images Docker et MariaDB pour la base de données.
    Citation Envoyé par Shuret Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE USER 'monutilisateur'@'localhost' IDENTIFIED BY '<password>';
    GRANT ALL PRIVILEGES ON mabase.* TO 'monutilisateur'@'localhost' IDENTIFIED BY '<password>';
    Citation Envoyé par Shuret Voir le message
    Je ne comprends pas pourquoi il indique root alors que je tente en monutilisateur ni à quoi correspond l'IP 172.17.0.2, qui n'est ni sur mon réseau local, ni bien sûr mon IP publique...
    Bon, en premier lieu une adresse 172.17.0.0 est une des adresses de classe B privées ; comme les 192.168.*.0
    https://fr.wikipedia.org/wiki/R%C3%A9seau_priv%C3%A9


    Quelles sont les adresses Ip des différentes images Docker ?

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 108
    Par défaut
    Merci pour ta réponse !

    Effectivement il s'agit bien de l'adresse IP de l'image Docker qui est montée. Je n'ai qu'une seule image Docker, la base de données n'est pas sous forme d'image mais de paquet Synology.

    Je pense que ça peut venir de la configuration en bridge de l'image. Je vais faire quelques tests.

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 108
    Par défaut
    J'ai fait différents tests mais aucun ne fonctionne. Je ne comprends pas quelle est le combo configuration réseau dans Docker + création de l'utilisateur MariaDB + grants de cet utilisateur + configuration de mon application à utiliser pour que ça fonctionne...

    N'hésitez pas à poser des questions si vous avez besoin de plus de détails...

  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 956
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE USER 'monutilisateur'@'%' IDENTIFIED BY '<password>';
    https://dev.mysql.com/doc/refman/8.4...unt-names.html

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 108
    Par défaut
    Hello,

    Bon ben j'ai retourné le truc dans tous les sens et je n'y arrive pas.

    J'ai testé les configuration user/grants suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE USER 'monutilisateur'@'%' IDENTIFIED BY '<password>';
    GRANT ALL PRIVILEGES ON mabase.* TO 'monutilisateur'@'%' IDENTIFIED BY '<password>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE USER 'monutilisateur'@'172.17.0.0/16' IDENTIFIED BY '<password>';
    GRANT ALL PRIVILEGES ON mabase.* TO 'monutilisateur'@'172.17.0.0/16' IDENTIFIED BY '<password>';
    Et j'ai toujours la même erreur :

    Access denied for user 'root'@'172.17.0.2' (using password: YES)
    Alors que je me connecte avec l'uilisateur monutilisateur...

    Je suis perdu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Installation de packages R dans une image Docker
    Par Grasshoper dans le forum R
    Réponses: 1
    Dernier message: 20/10/2023, 09h21
  2. Créer une image docker depuis un projet dotnet core
    Par shenron666 dans le forum Docker
    Réponses: 1
    Dernier message: 28/06/2023, 23h58
  3. Réponses: 0
    Dernier message: 31/12/2021, 01h02
  4. Réponses: 8
    Dernier message: 19/02/2019, 08h43
  5. Réponses: 4
    Dernier message: 15/03/2006, 12h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo