Last active
March 10, 2019 12:16
-
-
Save ezhov-da/d262c80d72d354123449e73bcfd234fa to your computer and use it in GitHub Desktop.
mongodb установка на centos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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