Skip to content

Instantly share code, notes, and snippets.

@ezhov-da
Last active March 10, 2019 12:16
Show Gist options
  • Save ezhov-da/d262c80d72d354123449e73bcfd234fa to your computer and use it in GitHub Desktop.
Save ezhov-da/d262c80d72d354123449e73bcfd234fa to your computer and use it in GitHub Desktop.
mongodb установка на centos
https://www.8host.com/blog/ustanovka-mongodb-v-centos-7/
1: Добавление репозитория MongoDB
Пакета mongodb-org нет в официальном репозитории CentOS. Однако MongoDB поддерживает специальный отдельный репозиторий, который можно добавить.
С помощью текстового редактора создайте файл .repo для yum, пакетного менеджера CentOS.
sudo vi /etc/yum.repos.d/mongodb-org.repo
Откройте официальную документацию MongoDB (раздел Install on Red Hat) и добавьте в файл информацию о последнем стабильном релизе:
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc
Сохраните и закройте файл.
Теперь нужно убедиться, что yum видит репозиторий MongoDB. Для этого используйте команду repolist.
yum repolist
...
repo id repo name
base/7/x86_64 CentOS-7 - Base
extras/7/x86_64 CentOS-7 - Extras
mongodb-org-3.2/7/x86_64 MongoDB Repository
updates/7/x86_64 CentOS-7 - Updates
...
Репозиторий MongoDB Repository указан в этом списке.
2: Установка MongoDB
Установите пакет mongodb-org:
sudo yum install mongodb-org
После запуска команды появится два запроса:
Is this ok [y/N]:
Первый – это запрос на разрешение установки пакета MongoDB, а второй – на импортирование GPG-ключа для подтверждения целостности загруженных пакетов. Введите Y и нажмите Enter.
Запустите сервис MongoDB:
sudo systemctl start mongod
Примечание: Управлять сервисом можно с помощью команд reload (перезагрузка, при этом процесс mongod перечитывает конфигурационный файл /etc/mongod.conf) и stop (остановка сервиса).
sudo systemctl reload mongod
sudo systemctl stop mongod
Утилита systemctl не выводит на экран результатов команды start. Чтобы проверить состояние сервиса, просмотрите лог mongod.log с помощью команды tail.
sudo tail /var/log/mongodb/mongod.log
[initandlisten] waiting for connections on port 27017
Такой вывод значит, что база данных MongoDB была успешно запущена, теперь вы можете получить доступ к оболочке MongoDB.
mongo
Примечание: Во время запуска оболочки может появиться предупреждение:
** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
MongoDB является многопоточным приложением. Такое приложение может запускать дополнительные процессы для обработки рабочей нагрузки. Это предупреждение сообщает, что производительность MongoDB увеличится, если количество одновременно поддерживаемых процессов будет вдвое меньше, чем количество одновременно открытых файлов. Чтобы устранить ошибку, отредактируйте параметр processes в файле 20-nproc.conf.
sudo vi /etc/security/limits.d/20-nproc.conf
Добавьте в конец файла такую строку:
mongod soft nproc 32000
Перезапустите MongoDB:
sudo systemctl restart mongod
Попробуйте снова подключиться к оболочке. Предупреждение больше не появится.
Чтобы понять, как взаимодействовать с оболочкой, просмотрите вывод метода db.help(), который предоставляет вывод метода объектов db.
db.help()
DB methods:
db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]
db.auth(username, password)
db.cloneDatabase(fromhost)
db.commandHelp(name) returns the help for the command
db.copyDatabase(fromdb, todb, fromhost)
db.createCollection(name, { size : ..., capped : ..., max : ... } )
db.createUser(userDocument)
db.currentOp() displays currently executing operations in the db
db.dropDatabase()
Процесс mongod можно оставить в фоновом режиме, а оболочку нужно закрыть:
exit
Bye
3: Настройка автозапуска MongoDB
Приложения на основе баз данных не могут работать без БД, потому очень важно настроить автоматический запуск демона mongod во время загрузки сервера.
Чтобы убедиться, что автозапуск не настроен, запросите состояние демона:
systemctl is-enabled mongod; echo $?
enabled
0
Ноль в выводе сообщает, что демон включен. Если в выводе 1, значит, демон отключен. Чтобы запустить его, используйте команду:
sudo systemctl enable mongod
Теперь MongoDB будет автоматически запускаться после перезагрузки системы.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment