Install MongoDB on CentOS
mongodb centosMongoDB provides four packages
Package Name | Description |
---|---|
mongodb-org | A metapackage that will automatically install the four component packages listed below. |
mongodb-org-server | Contains the mongod daemon and associated configuration and init scripts. |
mongodb-org-mongos | Contains the mongos daemon. |
mongodb-org-shell | Contains the mongo shell. |
mongodb-org-tools | Contains the following MongoDB tools: mongoimport bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop. |
- Configure the package management system (yum)
Create a /etc/yum.repos.d/mongodb-org-3.4.repo file so that you can install MongoDB directly, using yum. Use the following repository file:[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
- Install the MongoDB packages and associated tools
sudo yum install -y mongodb-org
- install package policycoreutils-python
sudo yum install policycoreutils-python
- Configure SELinux
Method 1.sudo semanage port -a -t mongod_port_t -p tcp 27017
method 2. Disable SELinux by setting the SELINUX setting to disabled in /etc/selinux/config.
SELINUX=disabled
You must reboot the system for the changes to take effect.
method 3. Set SELinux to permissive mode in /etc/selinux/config by setting the SELINUX setting to permissiveSELINUX=permissive
You must reboot the system for the changes to take effect.
- Move data storage to ZFS (optional)
sudo zfs create -o mountpoint=/var/lib/mongo/ <zpool name>/mongo sudo chown -R mongod:mongod /var/lib/mongo
- Using another dictionary for database (ex. /home/mongo)
sudo mkdir -p /home/mongo sudo chown mongod:mongod /home/mongo sudo chcon system_u:object_r:mongod_var_lib_t:s0 /home/mongo
- run semange fcontext and restorecon
# sudo semanage fcontext -a -t mongod_db_t "/mongo(/.*)?" # mongod_db_t is not validate. why? sudo semanage fcontext -a -t mongod_var_lib_t "/mongo(/.*)?" sudo grep -i mongod /etc/selinux/targeted/contexts/files/file_contexts.local
- Start MongoDB
sudo systemctl start mongod
You can verify that the mongod process has started successfully by checking the contents of the log file at /var/log/mongodb/mongod.log for a line reading
[initandlisten] waiting for connections on port <port>
- Enable MongoDB start following a system reboot
sudo chkconfig mongod on
- Enable authorization and listen on all IPs
You need create user first before you enable authorization. see: mongodb cheetsheet
Update the /etc/mongod.conf
# network interfaces
net:
port: 27017
# bindIp: 127.0.0.1 # Listen to local interface only, comment to listen on all interfaces.
security:
authorization: enabled
Uninstall MongoDB
sudo systemctl stop mongod
sudo yum erase $(rpm -qa | grep mongodb-org)
sudo rm -r /var/log/mongodb /var/lib/mongo
Written on October 19, 2017