Не удалось соединить mongodb с GoLang - PullRequest
0 голосов
/ 12 апреля 2020

Я не могу подключить mongodb к golang.

te lnet mongoHost 27017 это окей

ping mongoHost это окей

MongoHost - мой частный хост, а не docker

Mongodb версия: 2.4.3

MongoDriver: 1.3.2

Go версия: go версия go1.14.1 darwin / amd64

Операционная система: Ma c

Вот мой код подключения

clientOptions := &options.ClientOptions{}
clientOptions.SetServerSelectionTimeout(4 * time.Second)
clientOptions.SetDirect(true)
clientOptions.SetAppName("tests")
clientOptions.SetHosts([]string{"mongoHost:27017"})
clientOptions.SetReadPreference(readpref.Secondary())
client, err := mongo.NewClient(clientOptions)
if err != nil {
    log.Fatal(err)
}
ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
err = client.Connect(ctx)
if err != nil {
    log.Fatal(err)
}

Я изменил тайм-аут, но он не менял соединение каждый раз, когда я получал эту ошибку:

2020/04/12 14:06:19 server selection error: server selection timeout, current topology: { Type: Unknown, Servers: [{ Addr: mongoHost:27017, Type: Standalone, State: Connected, Average RTT: 13849652 }, ] }

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020

Go пн go драйвер не поддерживает пн go 2,4 https://jira.mongodb.org/browse/GODRIVER-1571

0 голосов
/ 14 апреля 2020

Установленные вами настройки клиента противоречивы. Либо вы устанавливаете прямое соединение с одним членом набора реплик, либо устанавливаете соединение с набором реплик с дополнительным предпочтением чтения. Я бы предложил изменить его на что-то простое:

client, err := mongo.NewClient(options.Client().ApplyURI("mongodb://mongoHost:27017/?replicaSet=FOOBAR"))

См. Также mon go -driver: Connect , чтобы увидеть различные примеры кода для подключения.

Версия Mongodb: 2.4.3

Пожалуйста, обновите версию сервера MongoDB. Наименее совместимой версией для драйвера MongoDB Go является версия сервера MongoDB 2.6. См. Таблица совместимости MongoDB для получения дополнительной информации.

MongoDB v2.4 был выпущен в 2013 году (7 лет go), в настоящее время версия 4.2. Я настоятельно рекомендую выполнить обновление, см. Обновите MongoDB до версии 2.6 , а затем выполняйте обновления до самых последних версий, соответствующих вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...