Я тестирую sharding в MongoDB
Сначала я запускаю сервер конфигурации и использую два метода.
метод 1 / с файлом конфигурации (не работает) здесьмой файл конфигурации
systemLog:
destination: file
path: "G:/data/replicas/server2/logs/server1.log"
logAppend: true
storage:
dbPath: "G:/data/replicas/server2/db"
engine: wiredTiger
journal:
enabled: true
#security:
# authorization: enabled
replication:
oplogSizeMB: 128
replSetName: rsData
#processManagement:
# fork: true
net:
bindIp: 127.0.0.1
port: 27018
, когда я запускаю rs.initiate, я получаю ошибку.
> rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "HORUS:27019",
"ok" : 0,
"errmsg" : "No host described in new configuration 1 for replica set rsConfSvr maps to this node",
"code" : 93,
"codeName" : "InvalidReplicaSetConfig"
}
, когда я запускаю rs.status (), после rs.initiate (),Я получаю сообщение об ошибке.
> rs.status()
{
"info" : "run rs.initiate(...) if not yet done for the set",
"ok" : 0,
"errmsg" : "no replset config has been received",
"code" : 94,
"codeName" : "NotYetInitialized"
}
метод 2 / с командной строкой
Это работает
Если я не ошибаюсь, командная строка имеет те же параметры, что и файл конфигурации
mongod --configsvr --dbpath G:/data/shards/cfgserverA/data --port 27019 --replSet rsConfigSvr --logpath "G:/data/shards/cfgserverA/logs/cfgserverA.log"
--logappend true --directoryperdb true
Теперь rs.initiate () и rs.status () работают совместно.
rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "HORUS:27019",
"ok" : 1
}
rsConfigSvr:OTHER>
rs.status()['configsvr']
true
Может кто-нибудь объяснить?Я не понимаю причину этой разницы.