MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Kết nối với MongoDB Atlas bằng Golang mgo:Liên tục không có máy chủ nào có thể truy cập được để đặt bản sao

Sử dụng đoạn mã mgo trình điều khiển MongoDB Go bên dưới để kết nối với MongoDB Atlas hoạt động, sử dụng dữ liệu mẫu của bạn:

import (
    "gopkg.in/mgo.v2"
    "crypto/tls"
    "net"
)

tlsConfig := &tls.Config{}

dialInfo := &mgo.DialInfo{
    Addrs: []string{"prefix1.mongodb.net:27017", 
                    "prefix2.mongodb.net:27017",
                    "prefix3.mongodb.net:27017"},
    Database: "authDatabaseName",
    Username: "user",
    Password: "pass",
}
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
    conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
    return conn, err
}
session, err := mgo.DialWithInfo(dialInfo)

Lưu ý rằng bạn cũng có thể chỉ định một trong các thành viên tập hợp bản sao làm hạt giống. Ví dụ:

Addrs: []string{"prefix2.mongodb.net:27017"}

Xem thêm:

  • tls.Dial ()
  • DialInfo
  • DialWithInfo

Cập nhật :

Bạn cũng có thể sử dụng phương thức ParseURL () để phân tích cú pháp chuỗi MongoDB Atlas URI. Tuy nhiên, hiện tại phương pháp này không hỗ trợ SSL (mgo.V2 PR:304)

Một công việc xung quanh là lấy ra ssl=true trước khi phân tích cú pháp.

//URI without ssl=true
var mongoURI = "mongodb://username:[email protected],prefix2.mongodb.net,prefix3.mongodb.net/dbName?replicaSet=replName&authSource=admin"

dialInfo, err := mgo.ParseURL(mongoURI)

//Below part is similar to above. 
tlsConfig := &tls.Config{}
dialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
    conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
    return conn, err
}
session, _ := mgo.DialWithInfo(dialInfo)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB SSL với chứng chỉ tự ký trong C #

  2. Sử dụng Mongosniff để làm rõ những gì MongoDB của bạn nghe và nói

  3. MongoDb - Thay đổi kiểu từ Int thành Double

  4. MongoDB có thể sử dụng một chỉ mục khi kiểm tra sự tồn tại của một trường có toán tử $ tồn tại không?

  5. Làm thế nào để dừng máy chủ mongodb trên Windows?