Набор реплик MongoDB с простой аутентификацией пароля
У меня есть набор реплик MongoDB из 3 серверов (1 первичный, 1 вторичный, 1 арбитр, это набор реплик по умолчанию, созданный Google Cloud 1-click install). 2 файла конфигурации (mongod.conf) основного сервера и вторичного сервера были изменены с добавлением "security.authorization: enabled".
Пользователь root добавляется со следующей командой оболочки MongoDB:
use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})
После перезапуска служб MongoDB на первичном и вторичном серверах с помощью "sudo service mongod restart" подключение к набору реплик становится неустойчивым.
rs.status() иногда дает результат как
- 1 первичный, 1 недостижимый, 1 арбитр
- 1 вторичный, 1 вторичный, 1 арбитр
- 1 вторичный, 1 недостижимый, 1 арбитр
Как настроить базовую аутентификацию пароля (не используя ключевой файл) для реплики MongoDB правильно установлен?
Ответы
Ответ 1
Я наконец нашел ответ. Для набора реплик MongoDB необходимы учетная запись пользователя и ключевой файл. Похоже, файл ключей используется для проверки подлинности между серверами в наборе реплик, а не для входа в систему.
Создайте файл ключа mongodb в linux, скопируйте на все серверы БД с неповрежденным режимом 600
:
cd
openssl rand -base64 741 > mongodb.key
chmod 600 mongodb.key
файл mongod.conf:
replication:
replSetName: rs0
security:
authorization: enabled
keyFile: /home/USERNAME/mongodb.key
Администратор:
(just like in question content)