MongoDB не удается подключиться к вновь созданному пользователю-администратору в базе данных администратора

#mongodb

Вопрос:

Мы создали нового пользователя-администратора в mongodb версии 3.6.21

 [root@MONGODB01 mongodb]# mongo --port 37017
MongoDB shell version v3.6.21
connecting to: mongodb://127.0.0.1:37017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("54681232-fa6b-4dbd-bfe5-c1bde274d430") }
MongoDB server version: 3.6.21
s1:PRIMARY> use admin
switched to db admin
s1:PRIMARY> db.createUser(
... {user: "admin",
...  pwd: "reco@123",
...  roles:[{role: "root" , db:"admin"}]})
Successfully added user: {
        "user" : "admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}
s1:PRIMARY> exit
bye
 

После этого мы пытаемся войти в систему, но сталкиваемся с ошибкой ниже. Пожалуйста, помогите

 [root@MONGODB01 mongodb]# mongo --port 37017 –u admin –p reco@123 -authenticationDatabase admin
MongoDB shell version v3.6.21
connecting to: mongodb://127.0.0.1:37017/–u?authSource=adminamp;gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("729e70cf-d594-4bd1-b6dc-73d75fd20f89") }
MongoDB server version: 3.6.21
loading file: admin
2021-10-18T15:35:07.305 0530 E -        [main] file [admin] doesn't exist
failed to load: admin
 

Ниже приведен файл конфигурации для основного экземпляра mongod.

 [root@MONGODB01 mongodb]# cat /etc/mongod.conf
# mongod.conf

systemLog:
  destination: file
  logAppend: true
  path: /data/mongodb/primary1/mongod.log

storage:
  dbPath: /data/mongodb/primary1/db
  journal:
    enabled: true
  # mmapv1:
    # # Reduce data files size and journal files size
    # smallFiles: true
  wiredTiger:
   engineConfig:
    cacheSizeGB: 4

processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

net:
  port: 37017
  bindIp: 0.0.0.0

security:
  # authorization: enabled
  keyFile: /data/mongodb/key/mongodb.key

replication:
  replSetName: s1

sharding:
  clusterRole: shardsvr
 

К вашему сведению — Мы запускаем основной сегмент1, Сегмент реплики 2 и Сегмент реплики 3 на одном узле.

Комментарии:

1. Установка security.keyFile подразумевает security.authorization = enabled Конфигурация работает, однако для лучшей видимости вы можете откомментировать строку. Когда вы запускаете несколько экземпляров Mongo на одном узле, вам также следует использовать разные processManagement.pidFilePath

Ответ №1:

Вам нужны два дефиса -- , должно быть вот это:

 mongo --port 37017 --authenticationDatabase admin -u admin -p reco@123
 

Вы можете заключить пароль в кавычки, т. е.

 mongo --port 37017 --authenticationDatabase admin -u admin -p "reco@123"
 

Для имени пользователя и пароля вы используете либо короткую, либо длинную форму, т. е.

 -u admin -p "reco@123"
or
--username admin --password "reco@123"
 

Ответ №2:

Я смог решить эту проблему, используя вместо этого приведенную ниже команду

 mongo --port 37017 -authenticationDatabase admin -u admin -p reco@123