Оболочка Монго подключается, но завершается при первой команде - PullRequest
0 голосов
/ 01 марта 2019

У меня есть контейнер реплики mongo и контейнер клиента mongo.

Когда я пытаюсь подключиться из клиента оболочки mongo, он может подключиться, но при первой команде он останавливается и завершается без сообщения об ошибке ?!Другие «не оболочечные клиенты» не имеют такой проблемы.Файл блокировки не найден.Есть идеи?

root@mongoclient-b8b6c4cff-2k5hg:~# mongo mongodb://root:xxx@mongodb:27017/db?authSource=admin&replicaSet=rs0
[12] 401
root@mongoclient-b8b6c4cff-2k5hg:~# MongoDB shell version v4.0.6
connecting to: mongodb://mongodb:27017/db?authSource=admin&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("5b6daf02-fc3b-4995-9819-728810c9011a") }
MongoDB server version: 4.0.3
Server has startup warnings: 
2019-02-22T09:12:54.186+0000 I STORAGE  [initandlisten] 
2019-02-22T09:12:54.186+0000 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2019-02-22T09:12:54.186+0000 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2019-02-22T09:12:55.199+0000 W CONTROL  [initandlisten] 
2019-02-22T09:12:55.199+0000 W CONTROL  [initandlisten] 
2019-02-22T09:12:55.199+0000 I CONTROL  [initandlisten] 
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---



[12]+  Stopped                 mongo mongodb://root:xxx@mongodb:27017/db?authSource=admin
root@mongoclient-b8b6c4cff-2k5hg:~#  

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Это происходит потому, что & - это специальный символ в оболочке, и у вас есть один неэкранированный в вашем URL.

Вы можете просто указать URL, чтобы оболочка не пыталась его интерпретировать:

mongo "mongodb://root:xxx@mongodb:27017/db?authSource=admin&replicaSet=rs0"
0 голосов
/ 01 марта 2019

Хорошо .. Я нашел решение, получается, что удаление параметра replicaset в URL работает!

...