Я использую Oracle Virtualbox для размещения 3 виртуальных машин, работающих под управлением CentOS 7.
Настройка сети Vbox:
primary-db Adapter1: режим NAT, нет правил пересылки в настройках сети & Adapter2: режим моста, случайный режим = Разрешить все
primary-db1 Adapter1: режим NAT, нет правил пересылки в настройках сети & Adapter2: режим моста, случайный режим = Разрешить все
вторичный-db2 Адаптер 1: режим NAT, без правил пересылки в сетевых настройках & Адаптер 2: режим моста, случайный режим = Разрешить все
- Я добавил порт 27017 в брандмауэр. (Я также добавил 27018 для тестирования)
- Создан /data/db.
- Я добавил все IP-адреса хоста в файл каждого сервера / etc / hosts и прокомментировал 127.0. 0.1 строка
- Я настроил все файлы mon go .conf следующим образом:
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
storage:
dbPath: /var/lib/mongo
journal:
enabled: true
processManagement:
fork: true
pidFilePath: /var/run/mongodb/mongod.pid
timeZoneInfo: /usr/share/zoneinfo
net:
port: 27017
bindIp: 192.168.1--.---,127.0.0.1
replication:
replSetName: "replica01"
Проблема:
Теперь, когда я запускаю
# mongo -host <secondary-db server/192.168.---.---> -port 27017
На основном сервере, я могу войти в оболочку mon go вторичных серверов
Но когда я пытаюсь использовать
rs.add('secondary-db1')
или
rs.add('secondary-db1:27017')
Я продолжаю получать это:
replica01:PRIMARY> rs.add('secondary-db')
{
"operationTime" : Timestamp(1581381570, 1),
"ok" : 0,
"errmsg" : "Either all host names in a replica set configuration must be localhost references, or none must be; found 1 out of 2",
"code" : 103,
"codeName" : "NewReplicaSetConfigurationIncompatible",
"$clusterTime" : {
"clusterTime" : Timestamp(1581381570, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
replica01:PRIMARY>
Я даже пытался прокомментировать строку bindIP для проверки, но она дает мне тот же результат. я что-то посмотрел? Я использовал этот учебник в качестве моей справки.