Не удается найти информацию о поддержке подключения доменных сокетов unix к официальному драйверу mongo-go.
Официально ли оно реализовано и поддерживается?
"mongodb: /// tmp"/mongodb-27017.sock "Ури не работает.
Это официально реализовано и поддерживается?
Используя официальный драйвер MongoDB Go , вы можете напрямую подключиться к сокету 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 поддерживает два типа строки подключения:
Стандартная строка подключения * формат 1017 *, т. Е. mongodb://user:pwd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
mongodb://user:pwd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
Соединение с Seedlist DNS * формат 1024 *, т. Е. mongodb+srv://server.example.com/
mongodb+srv://server.example.com/
Обратите внимание, что MongoDB по своей структуре является распределенной базой данных (см. Набор реплик ).Сокет - это файловая связь, предназначенная для доступа на одной машине.Если ваш сценарий использования и требования не требуют подключения напрямую через сокеты Unix, я бы рекомендовал вместо этого использовать один из форматов строки подключения, приведенных выше.