在CentOS7上安装MongoDB并启动MongoDB,然后启动mongoShell
我将在CentOS7的64位环境下安装MongoDB(版本3.4),非常简单。
$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
$ arch
x86_64
我参考了安装手册。
Yum的配置
我非常想直接运行yum install mo,但在此之前需要创建配置文件。请先创建文件。
$ sudo vi /etc/yum.repos.d/mongodb-org-3.4.repo
根据我查看的文档,似乎在CentOS中可以通过在/etc/yum.repos.d/目录下创建.repo文件来添加yum存储库。尽管.repo文件的内容有些许不同,但除此之外,这篇文章的内容几乎可以完全适用于AmazonLinux。
[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
打开安装命令行
$ sudo yum install -y mongodb-org
...
依存性関連をインストールしました:
mongodb-org-mongos.x86_64 0:3.4.10-1.el7 mongodb-org-server.x86_64 0:3.4.10-1.el7
mongodb-org-shell.x86_64 0:3.4.10-1.el7 mongodb-org-tools.x86_64 0:3.4.10-1.el7
完了しました!
SELinux的设置。
在大多数UNIX类操作系统中,会对会话使用的系统资源进行限制,这可能会影响MongoDB的操作。据说需要在启用SELinux的情况下对MongoDB使用的端口进行授权,或者禁用SELinux的设置。在使用Vagrant+VirtualBox启动的CentOS7中,SELinux的状态为宽容模式。因此,我没有尝试过这个SELinux的设置。
$ getenforce
Permissive
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28
如果是permissive或disabled,似乎无需进行任何操作。但如果是enforcing,则需要将状态更改为permissive或disabled之一,或者需要允许对MongoDB使用的端口(默认为27017)进行访问。如果执行了其中一种操作,则需要重新启动系统以反映更改。
# disabledにステータス変更する場合
$ SELINUX=disabled
# permissiveにステータス変更する場合
$ SELINUX=permissive
# 27017番ポートにアクセス許可する場合
$ semanage port -a -t mongod_port_t -p tcp 27017
启动MongoDB
启动mongod进程。mongod是什么意思?在CentOS7中,它会重定向并执行systemctl命令,所以使用systemctl命令也可以。供参考。
$ sudo service mongod start
または
$ sudo systemctl start mongod.service
让我们检查一下MongoDB是否成功启动。我们将查看/var/log/mongodb/mongod.log文件中的内容。
$ sudo cat /var/log/mongodb/mongod.log
我认为会有各种各样的东西出现,但只要有类似于在端口27017上等待连接的日志就可以了。
要在系统重启时启动MongoDB,请.
$ sudo chkconfig mongod on
または
$ sudo systemctl enable mongod.service
执行。(这是一个选项,不执行也可以。)
停止和重新启动MongoDB
停止指令
$ sudo service stop mongod
または
$ sudo systemctl stop mongod.service
重新启动命令
$ sudo service restart mongod
または
$ sudo systemctl restart mongod.service
以本地化方式重述以下内容,只需提供一种选择:
启动Mongo Shell
公式文档(Formulaic document)
只要正常安装,路径应该是通的,因此可以使用mongo命令启动mongoShell。
$ which mongo
/usr/bin/mongo
$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
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-11-20T17:06:01.466+0900 I CONTROL [initandlisten]
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten]
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten]
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten]
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-11-20T17:06:01.466+0900 I CONTROL [initandlisten]
>
我收到了一个警告,但暂时成功启动了。我准备退出看看。
> exit
bye
$
可以了。接下来,我想尝试进行基本的数据库操作和使用 Node.js 访问 MongoDB。