参考 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/
安装MongoDB
1. 配置yum源
新建 /etc/yum.repos.d/mongodb-org-3.4.repo文件,这样能使用yum直接安装MongoDB。
$ sudo vi /etc/yum.repos.d/mongodb-org-3.4.repo
在文件中输入:
[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
保存退出。
2. 安装MongoDB包和相关工具
$ sudo yum install -y mongodb-org
3. 运行MongoDB
大多数类Unix操作系统都会限制一个对话可以使用的资源。这些限制可能会对MongoDB的操作产生负面影响。更详细的信息请见 https://docs.mongodb.com/manual/reference/ulimit/ 。
I. 配置SELinux
重要: 如果你正在使用SELinux,你必须配置SELinux使得MongoDB能够在以Red Hat Linux-based(Red Hat Enterprise Linux or CentOS Linux)的系统上启动。
管理员有三种方式配置SELinux:
1)强制模式下的SELinux
如果SELinux在强制模式下,我们需要使得MongoDB能够访问其运行时使用的相关端口(如 27017)。更多有关MongoDB默认端口的详细信息请见 https://docs.mongodb.com/manual/reference/default-mongodb-port/ 。对于默认设置,我们可以运行如下命令:
semanage port -a -t mongod_port_t -p tcp 27017
2)不启用SELinux
设置 /etc/selinux/config 下的SELINUX字段为disabled,不启用SELinux。
$ sudo vi /etc/selinux/config
编辑
SELINUX=disabled
我使用的这种方式。
3)设置SELinux为permissive模式
同样的,编辑 /etc/selinux/config ,将SELINUX字段设置为permissive
$ sudo vi /etc/selinux/config
编辑
SELINUX=permissive
重启系统使更改生效。
你也可以使用setenforce更改至permissive模式。setenforce不要求重启,但更改不持久。
II. 数据目录及权限
警告: 在RHEL 7.0操作系统上,如果更改了数据存放目录,默认的SELinux策略将会阻止mongod获得对新数据存放目录的写权限,除非我们更改了安全设置。(PS:最省心的方法就是不启用SELinux)
MongoDB默认将数据文件存放在 /var/lib/mongo 目录下,将日志文件存放在 /var/log/mongodb 目录下,并且以 mongod 用户身份运行。可以通过修改 /etc/mongod.conf 文件指定数据文件目录和日志文件目录。有关日志路径和数据存储路径的更多信息请参考 https://docs.mongodb.com/manual/reference/configuration-options/#systemLog.path 和 https://docs.mongodb.com/manual/reference/configuration-options/#storage.dbPath 。
如果更改了运行MongoDB的用户,则必须修改 /var/lib/mongo 和 /var/log/mongodb 的权限,使得相应的运行用户能够访问修改权限。
III. 相关命令
启动MongoDB
$ sudo service mongod start
设置开机启动
$ sudo chkconfig mongod on
停止MongoDB
$ sudo service mongod stop
重启MongoDB
$ sudo service mongod restart
注意: 在Centos 7 版本中,运行上述命令虽然也能达到效果,但还是建议使用如下命令:
启动MongoDB
$ sudo systemctl start mongod.service
验证MongoDB是否成功启动
$ sudo cat /var/log/mongodb/mongod.log
如出现
[thread1] waiting for connections on port <port>
其中的默认为27017,在 /etc/mongod.conf中配置,则启动成功!
设置开机启动
$ sudo systemctl enable mongod.service
停止MongoDB
$ sudo systemctl stop mongod.service
重启MongoDB
$ sudo systemctl restart mongod.service
卸载MongoDB
彻底卸载MongoDB,必须移除MongoDB应用程序,移除配置文件和任何包含数据及日志的目录。下面的指南是彻底卸载MongoDB的必须步骤。
警告:如下步骤将会彻底卸载MongoDB,包括其配置文件和所有的数据库文件。这个过程是不可逆的,所以确保在执行这些步骤之前已经备份了你的配置文件和数据文件。
I. 停止MongoDB
$ sudo service mongod stop
II. 移除MongoDB包
移除之前安装的所有MongoDB包
$ sudo yum erase $(rpm -qa | grep mongodb-org)
III. 删除数据文件及日志文件
删除MongoDB数据库和日志文件
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongo