#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