Maison >développement back-end >Golang >Échec de l'initialisation de la base de données, erreur lors de la composition de TCP 127.0.0.1:3306 : connexion : problème de connexion refusée

Échec de l'initialisation de la base de données, erreur lors de la composition de TCP 127.0.0.1:3306 : connexion : problème de connexion refusée

WBOY
WBOYavant
2024-02-06 10:42:041168parcourir

初始化数据库失败,出现错误拨号 tcp 127.0.0.1:3306: connect: 连接被拒绝 问题

Contenu de la question

J'apprends Docker, commençons maintenant Mais j'ai un problème quand je l'exécute avec ce docker docker run --rm -p 8080:8080/tcp --env-file .env my-project:latest Voici une partie de mon code .env. J'utilise le bureau Docker sous Windows, suis-je incapable d'exécuter Docker sur localhost sous Windows ?

DB_HOST=127.0.0.1
DB_USERNAME=root
DB_NAME=mydbs
DB_PASS=root123
AUTH_GEN_URL=https://api.learning.mydbs.id

Est-ce que quelqu'un sait ? Toutes les réponses seraient grandement appréciées

Merci


Réponse correcte


Le problème est que lorsque vous démarrez le conteneur, il essaie de se connecter 127.0.0.1:3306 à l'intérieur du conteneur au lieu de l'hôte, vous obtenez donc l'erreur car la connexion a été refusée car il n'y a pas de connexion sur le port 3306 Tout s'exécute dans le conteneur sur localhost.

Pour Windows et Mac, ce problème peut être facilement résolu en utilisant host.docker.internal 而不是 127.0.0.1. Cela garantit que les services exécutés dans le conteneur se connectent correctement à l'instance MySQL exécutée sur la machine hôte.

Pour Linux, c'est encore plus simple puisqu'il suffit d'ajouter la commande --network="host" 选项传递给 docker run

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer