简体   繁体   中英

Mongodb unix socket connection with an official mongo-go-driver?

Can't find any information about unix domain sockets connection support with official mongo-go-driver.

Is it implemented and supported officially?

The "mongodb:///tmp/mongodb-27017.sock" uri does not work.

Is it implemented and supported officially?

Using the official MongoDB Go driver you can connect directly to a URI socket. You just need to escape the slash(es). For example using v1.1+:

mongoURI := "mongodb://%2Ftmp%2Fmongodb-27017.sock"

client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
if err != nil {
    panic(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect(ctx)
if err != nil {
    panic(err)
}

In addition, mongo.Client supports two types of connection string, either:

Please note that MongoDB, by design, is a distributed database (see Replica Set ). Socket is a file based communication and intended for access within a single machine. Unless your use case and requirements specifically require to connect directly via Unix sockets, I'd recommend to use one of the connection string formats above instead.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM