找不到任何关于 unix 域套接字连接支持官方 mongo-go-driver 的信息。
它是否得到官方实现和支持?
“mongodb:///tmp/mongodb-27017.sock”uri 不起作用。
最佳答案
Is it implemented and supported officially?
使用官方MongoDB Go driver您可以直接连接到 URI 套接字。您只需要转义斜线即可。例如使用 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)
}
此外,mongo.Client支持两种类型的连接字符串,要么:
Standard Connection String格式,即
mongodb://user:pwd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
DNS Seedlist Connection格式,即
mongodb+srv://server.example.com/
请注意,根据设计,MongoDB 是一个分布式数据库(参见 Replica Set)。套接字是一种基于文件的通信,旨在用于在单台机器内进行访问。除非您的用例和要求特别需要通过 Unix 套接字直接连接,否则我建议改用上述连接字符串格式之一。
关于Mongodb unix 套接字与官方 mongo-go-driver 的连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58052633/