为了账号安全,请及时绑定邮箱和手机立即绑定

Go mgo.v2 包错误:没有可访问的服务器

Go mgo.v2 包错误:没有可访问的服务器

Go
千巷猫影 2023-04-24 16:41:41
尝试使用 mgo.v2 包连接到 mongodb 服务器。我已经使用以下命令启动了服务器:mongod --auth我可以使用终端连接到服务器:$ mongo -u "username" -p "password" --authenticationDatabase "db"但是当我使用时:mgo.Dial("mongodb://usernamer:password@127.0.0.1:27017/dbname")它给我一个错误,说 {"error":"no reachable servers"}。我的 docker-compose.yml 文件如下version: "2"services:  todo:    build:      context: .      dockerfile: todo/Dockerfile    restart: always    volumes:    - .:/go/src/prac    container_name: todo    ports:    - 8800:8081  mongodb:    command: mongod --auth    container_name: mongodb    image: mongo:latest    ports:    - 27017:27017
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

问题似乎是您正在尝试连接到 127.0.0.1。MongoDB 不在同一个容器中,所以这行不通。

mgo.Dial("mongodb://usernamer:password@127.0.0.1:27017/dbname")

您应该改为使用您选择的名称连接到您定义的 MongoDB 容器。

mgo.Dial("mongodb://usernamer:password@mongodb:27017/dbname")

Docker Compose 为您的容器创建一个网络,在其中它们可以使用您定义为主机名的名称相互访问。请注意,您不需要ports为容器定义相互访问;这些只需要从 Docker 外部访问容器。


查看完整回答
反对 回复 2023-04-24
  • 1 回答
  • 0 关注
  • 246 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信