Usando CentOS 7.
Versão do MongoDB: 3.2.15
Nome do host: node1
Faça o diretório:
mkdir /mongo-metadata
/etc/mongod.conf
# mongod.conf
# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/
# where to write logging data.
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
# Where and how to store data.
storage:
dbPath: /mongo-metadata
journal:
enabled: true
# engine:
# mmapv1:
# wiredTiger:
# how the process runs
processManagement:
fork: true # fork and run in background
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
#security:
#operationProfiling:
replication:
replSetName: rs0
#sharding:
## Enterprise-Only Options
#auditLog:
#snmp:
Inicie o membro de replicação:
mongod --config /etc/mongod.conf
Executar mongo
:
mongo
# try
rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "node1:27017",
"ok" : 0,
"errmsg" : "No host described in new configuration 1 for replica set rs0 maps to this node",
"code" : 93
}
# try
config = {
_id : "rs0",
members : [
{_id : 0, host : "node1:27017"},
{_id : 1, host : "node2:27017"},
]
}
rs.initiate(config)
{
"ok" : 0,
"errmsg" : "No host described in new configuration 1 for replica set rs0 maps to this node",
"code" : 93
}
Referência:
https://docs.mongodb.com/manual/reference/command/replSetInitiate/
Então qual é a razão? Ele não pode perceber o nome do host?
A resposta é simples! Você não tem "node1" definido em seu arquivo /etc/hosts. Sua máquina não conhece o endereço IP de "node1" (ou "node2").
E então outra coisa, você definiu (no arquivo de configuração) que seu mongod está ouvindo apenas localhost. Portanto, significa que todo o seu conjunto de réplicas deve estar nessa máquina e, se estiver, todos esses três membros não podem usar a mesma porta 27017, cada membro deve ter uma porta diferente.
Para o meu caso: substitua
127.0.0.1
porlocalhost
. Então funciona.Aqui está o
rsconf
: