登录
首页 >  Golang >  Go问答

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

来源:stackoverflow

时间:2024-04-03 09:30:38 413浏览 收藏

golang学习网今天将给大家带来《Go mgo.v2 包错误:没有可访问的服务器》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

尝试使用 mgo.v2 包连接到 mongodb 服务器。我已经使用以下方式启动了服务器:

mongod --auth

我可以使用终端连接到服务器:

$ mongo -u“用户名”-p“密码”--authenticationdatabase“db”

但是当我使用时:

mgo.dial("mongodb://用户名:[电子邮件受保护]:27017/dbname")

它给我一个错误,提示{“error”:“noreachableservers”}。

我的 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

解决方案


问题似乎是您正在尝试连接到 127.0.0.1。 mongodb 不在同一个容器中,所以这不起作用。

mgo.dial("mongodb://usernamer:[email protected]:27017/dbname")

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

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

docker compose 为您的容器创建一个 network,它们可以在其中使用您定义为主机名的名称相互访问。请注意,您不需要定义 ports 来让容器相互访问;这些仅需要从 docker 外部访问容器。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>