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 :
J'y accède bien avec un client MariaDB en tant que monutilisateur depuis mon PC sur le réseau local.
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>';
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 :
Dans les logs, je n'ai pas d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6spring: 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>
Par contre si je configure l'application de la manière suivante :2024-10-30 10:24:39 [main] INFO org.flywaydb.core.FlywayExecutor:line - Database: jdbc:mariadb://192.168.1.49/ (MariaDB 10.11)
J'ai le message d'erreur suivant, qui n'est pas du tout clair :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6spring: 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>
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.SQL State : 28000
Error Code : 1045
Message : (conn=10) Access denied for user 'root'@'172.17.0.2' (using password: YES)
Par acquis de conscience, j'ai fait un test avec une IP bidon :
J'obtiens l'erreur suivante, ce qui est plutôt logique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6spring: 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>
Est-ce qu'une âme charitable aurait une idée de ce qu'il se passe ici ?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
Merci pour votre aide !
Partager