0
votes

Spring Boot Docker Impossible de se connecter à MySQL (connexion refusée / créeCommunicationSexception)

D'accord, donc j'ai une application Java de démarrage à ressort, MySQL DB et NGinx. Je les commence et ça ressemble à ceci (commandement que j'utilise est docker-composant up c'est tout ce que je dois exécuter): Entrez la description de l'image ici

L'erreur que j'ai dans mon application Workaround_app_1 est suivante: xxx

que continue et un jusqu'à la fin que vous voyez xxx

ceci est mon docker-compose: xxx

et voici ma candidature.properties:le_profe ,xxxxp>my dockerfile ne contient qu'une doublure: de OpenJDK: 12-JDK

Tout ça À l'esprit, qu'est-ce qui se passe pourquoi je ne peux pas me connecter à ma base de données? Quand je le fais hors de Docker, tout fonctionne bien sur Localhost. Bud ne peut pas le faire fonctionner avec cette configuration. Cela pourrait-il être que ma solution de travail_app_1 a commencé plus tôt que MySQL et maintenant ne peut pas fonctionner? Bourgeon dans mon docker-compose, j'ai spécifié que cela dépend de MySQL à démarrer correctement? IM NOUVEAU à Docker + NGinx.

Notes:

J'ai essayé différents ports pour MySQL BUD qui ne semble pas être question. Je ne pense pas non plus sa question avec des ressources ou des contraintes matérielles, alors que ce soit. Mes configurations sont-elles correctes? BTW I Utilisez Docker pour Windows, Machine 64bit JDK12. J'ai essayé des applications de démonstration et ils fonctionnaient bien.


3 commentaires

Je viens de réaliser que je pourrais avoir besoin d'un script externe pour attendre par attente qui obligera à attendre que MySQL soit prêt. Toujours à la recherche de solutions.


Docker Compose Documentation Les appels de la documentation: "Depends_on n'attend pas que DB et Redis soit" prêt "avant de commencer Web - seulement jusqu'à ce qu'ils aient été démarrés." Et ils ont une recommandation: docs.docker.com/commose/startupadorder


@Jasonwarner Cet article ressemble à ce dont j'ai besoin!


3 Réponses :


0
votes

Vous pouvez vous connecter à partir de hôte à dB dans le conteneur Docker, mais vous ne pouvez pas vous connecter à DB dans le conteneur Docker à partir de Autre conteneur Docker .

Vérifiez les paramètres MySQL et autorisez les connexions à partir de l'application IP (ou réseau Docker du conteneur).


0 commentaires

1
votes

Les ports mappage dans votre docker-compose.yml est uniquement pertinent pour l'hôte, vous pourrez donc vous connecter à votre dB via localhost: 3308 . Mais à l'intérieur de vos autres conteneurs Docker-Composez (c'est-à-dire le réseau COMPOSE par défaut), vous devez utiliser Solution de contournement-MySQL: 3306 .


3 commentaires

Oui, j'utilise ça :) Je pense que je suis déjà plus proche de la solution complète. Essayer maintenant d'obtenir un script d'attente pour le travail de MySQL.


Peut-être que vous souhaitez construire / configurer votre application pour réessayer s'il ne se connecte pas à la première tentative?


Comment puis-je faire cela au démarrage? C'est toujours en train d'être construit et il se bloque, il teste la connexion automatiquement. Je suppose que c'est quand ça va créer des tables.



1
votes

OK, alors le problème était, MySQL est resté coincé sur:

[Entrypoint] Démarrage MySQL 5.7.26-1.1.11

Rien ne pourrait se connecter à celui-ci. Application dont il a besoin de démarrage et qu'il ne pouvait pas se connecter, il s'agissait d'erreurs de lancer.

Voici une autre question de Mayne concernant ce problème et vous pouvez voir sa résolution: Docker MySQL - Impossible de se connecter à partir de démarrage Application de la base de données MySQL


0 commentaires