MongoDB 专题
您的位置:database > MongoDB专题 > MongoDB安装配置(RedHat/CentOS)
MongoDB安装配置(RedHat/CentOS)
作者:--    发布时间:2019-11-20

本教程介绍如何在red hat enterprise linux或centos linux版本6和7上使用.rpm软件包来安装 mongodb 社区版。 虽然red hat包含自己的mongodb软件包,但安装最新 mongodb社区版还要自己手动安装。

平台支持: 本安装指南仅支持64位系统。有关详细信息,请参阅平台支持。mongodb 3.2不支持red hat enterprise linux 5。

mongodb-org-server包提供了一个使用/etc/mongod.conf配置文件启动 mongod 的初始化脚本。

由软件包提供的默认的 /etc/mongod.conf 配置文件的 bind_ip 默认设置为 127.0.0.1。 在初始化副本集合之前,根据环境的需要修改此设置。

安装mongodb社区版

本安装指南仅支持64位系统。有关详细信息,请参阅平台支持。请参考以下步骤一步一步地来完成。

第一步:配置包管理系统(yum)

创建一个 /etc/yum.repos.d/mongodb-org-3.4.repo 文件,以便可以使用 yum 命令直接安装 mongodb。

mongodb版本3.0中更改:mongodb linux软件包位于以 3.0 开头的新存储库中。

对于最新稳定发布的mongodb

创建存储库文件(使用命令:vi /etc/yum.repos.d/mongodb-org-3.4.repo),写入如下内容:

[mongodb-org-3.4]
name=mongodb repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=http://www.mongodb.org/static/pgp/server-3.4.asc

第二步:安装mongodb软件包和相关工具

要安装最新的稳定版本(3.4)的mongodb,请执行以下命令:

# sudo yum install -y mongodb-org

执行过程如下所示 -

安装完成后,如下图所示 -

运行mongodb

大多数类unix操作系统限制会话,以减少系统资源的使用。 这些限制可能会对 mongodb 操作产生负面影响。有关详细信息,请参阅unix ulimit设置

配置selinux

如果您使用selinux,则必须配置selinux以允许mongodb在基于red hat linux的系统(red hat enterprise linux或centos linux)上启动。

要配置selinux,管理员有三个选项:

  • 如果selinux处于强制模式,则可以访问mongodb部署将使用的相关端口(例如27017)。 有关mongodb默认端口的更多信息,请参阅默认mongodb端口。 对于默认设置,可以通过运行下面命令来实现 -
# semanage port -a -t mongod_port_t -p tcp 27017
  • 通过在/etc/selinux/config中将 selinux 设置为 disabled 来禁用selinux。
selinux=disabled

以学习为目的,建议使用此项设置,但是必须重新启动系统才能使更改生效。

  • /etc/selinux/config 中设置为许可模式,即,将selinux设置为 permissive
selinux=permissive

上述设置完成后,必须重新启动系统才能使更改生效。可以使用 setenforce 更改为允许模式。 setenforce 不需要重启,但不持续。

或者,可以选择在安装linux操作系统时不要安装selinux软件包,或选择删除相关软件包。这个选项是最具侵入性的,所以不推荐。

mongodb实例默认将其数据文件存储在/var/lib/mongo目录,及其日志文件/var/log/mongodb中,并使用 mongod 用户帐户运行。可以在 /etc/mongod.conf 中指定备用日志和数据文件目录。 有关其他信息,请参阅systemlog.pathstorage.dbpath

如果更改运行 mongodb 进程的用户,则必须修改 /var/lib/mongo/var/log/mongodb 目录的访问控制权限,以使此用户能够访问这些目录。

启动 mongodb

可以通过发出以下命令来启动 mongod 进程:

# sudo service mongod start

验证mongodb是否已成功启动

可以通过检查 /var/log/mongodb/mongod.log 中的日志文件的内容来验证 mongod 进程是否成功启动,查看此文件应该会看到类似的内容 -

[root@localhost ~]# cat /var/log/mongodb/mongod.log
2017-06-29t04:36:57.410-0400 i control  [main] ***** server restarted *****
2017-06-29t04:36:57.695-0400 i control  [initandlisten] options: { command: [ "run" ], config: "/etc/mongod.conf", net: { bindip: "127.0.0.1", port: 27017 }, processmanagement: { fork: true, pidfilepath: "/var/run/mongodb/mongod.pid" }, storage: { dbpath: "/var/lib/mongo", journal: { enabled: true } }, systemlog: { destination: "file", logappend: true, path: "/var/log/mongodb/mongod.log", quiet: true } }
2017-06-29t04:36:57.809-0400 i storage  [initandlisten] wiredtiger_open config: create,cache_size=256m,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2gb),statistics_log=(wait=0),
... ...
2017-06-29t04:36:59.529-0400 i index    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-06-29t04:36:59.529-0400 i index    [initandlisten]          building index using bulk method; build may temporarily use up to 500 megabytes of ram
2017-06-29t04:36:59.541-0400 i index    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-06-29t04:36:59.542-0400 i command  [initandlisten] setting featurecompatibilityversion to 3.4
2017-06-29t04:36:59.548-0400 i network  [thread1] waiting for connections on port 27017
[root@localhost ~]#

或者,使用以下命令 -

[root@localhost ~]# ps -aux|grep mongod
mongod     2169  2.7  3.9 971208 39804 ?        sl   04:36   0:03 /usr/bin/mongod --quiet -f /etc/mongod.conf run
root       2376  0.0  0.0 112648   964 pts/0    r+   04:38   0:00 grep --color=auto mongod
[root@localhost ~]#

可以选择确保通过发出以下命令,mongodb 将在系统启动后启动 mongod 服务:

# sudo chkconfig mongod on

停止 mongodb

根据需要,可以通过发出以下命令来停止 mongod 进程:

# sudo service mongod stop

重启 mongodb

根据需要,可以通过发出以下命令来重启 mongod 进程:

# sudo service mongod restart

可以通过查看 /var/log/mongodb/mongod.log 文件中的输出来跟踪进程状态的错误或重要信息。

开始使用 mongodb

进入 mongodb 命令行,简单地使用 -

[root@localhost ~]# mongo

## 查看数据库
> show dbs;

## 查看数据库版本
> db.version();

## 常用命令帮助
> db.help();

[root@localhost ~]# mongo
mongodb shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
mongodb server version: 3.4.5
welcome to the mongodb shell.
for interactive help, type "help".
for more comprehensive documentation, see
        http://docs.mongodb.org/
questions? try the support group
        http://groups.google.com/group/mongodb-user
server has startup warnings:
2017-06-29t04:36:58.888-0400 i control  [initandlisten]
2017-06-29t04:36:58.888-0400 i control  [initandlisten] ** warning: access contr                                                                                        ol is not enabled for the database.
2017-06-29t04:36:58.888-0400 i control  [initandlisten] **          read and wri                                                                                        te access to data and configuration is unrestricted.
2017-06-29t04:36:58.888-0400 i control  [initandlisten]
2017-06-29t04:36:58.892-0400 i control  [initandlisten]
2017-06-29t04:36:58.892-0400 i control  [initandlisten] ** warning: /sys/kernel/                                                                                        mm/transparent_hugepage/enabled is 'always'.
2017-06-29t04:36:58.892-0400 i control  [initandlisten] **        we suggest set                                                                                        ting it to 'never'
2017-06-29t04:36:58.892-0400 i control  [initandlisten]
2017-06-29t04:36:58.892-0400 i control  [initandlisten] ** warning: /sys/kernel/                                                                                        mm/transparent_hugepage/defrag is 'always'.
2017-06-29t04:36:58.892-0400 i control  [initandlisten] **        we suggest set                                                                                        ting it to 'never'
2017-06-29t04:36:58.892-0400 i control  [initandlisten]
>
> show dbs;
admin  0.000gb
local  0.000gb
> use local
switched to db local
> db.version()
3.4.5
>

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册