在 CentOS 8 上安装 MongoDB
MongoDB是一个免费并且开源的文档数据库。它属于一个被称为NoSQL的数据库家族。NoSQL与传统的关系型数据库不同,例如MySQL和PostgreSQL。在MongoDB中,数据被灵活地以类似JSON的形式被存储成文档。它不要求预先定义schema,并且数据结构一直都可以改变。这个指南解释了如何在CentOS8服务器上安装和配置MongoDB社区版本。...
MongoDB 是一个免费并且开源的文档数据库。它属于一个被称为 NoSQL 的数据库家族。NoSQL 与传统的关系型数据库不同,例如:MySQL 和 PostgreSQL。
在 MongoDB 中,数据被灵活地以类似 JSON 的形式被存储成文档。它不要求预先定义schema,并且数据结构一直都可以改变。
这个指南解释了如何在 CentOS 8 服务器上安装 和 配置 MongoDB 社区版本。
一、 安装 MongoDB
MongoDB 在 CentOS 8 核心软件源上不可用。 我们将会启用 MongoDB 官方软件源,并且安装软件包。
在写本文的时候,MongoDB 官方软件源上最新的 MongoDB 版本是 4.4。 在开始安装之前,访问 MongoDB的文档Install on Red Hat,检查一下是否有更新的发布版本。
以root 或者有 sudo 权限的用户身份执行下面的步骤,在 CentOS 8 系统上安装 MongoDB:
01.在/etc/yum.repos.d/目录下创建一个名为mongodb-org.repo的源文件,启动 MongoDB 源(没明白啥意思):
touch /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
如果你想安装 MongoDB 更老的版本,将4.4替换成你想要的版本。
02.安装mongodb-org元软件包:
sudo dnf install mongodb-org
在安装过程中,你将会被提示插入 MongoDB GPG key。 输入y并且按Enter回车。
下面的软件包将会在你系统上安装,作为mongodb-org软件包的一部分:
mongodb-org-server - mongod守护进程,相应的初始化脚本和配置。
mongodb-org-mongos - mongos守护进程。
mongodb-org-shell - mongo shell,一个适用于 MongoDB 的交互式JavaScript 界面 ,主要用来通过命令行执行一些管理任务。
mongodb-org-tools - 包含一些 MongoDB 工具,例如:数据导入工具,数据导出工具,数据统计工具等。
03.一旦安装完成,启用并且启动 MongoDB 服务:
sudo systemctl enable mongod --now
04.想要验证安装,连接到MongoDB数据库,并且打印出服务器版本:
mongo
运行下面的命令,显示 MongoDB版本号:
db.version()
输出可能像下面这样:
4.2.3
二、 配置 MongoDB
MongoDB配置文件被命名为:mongod.conf,位于 /etc目录。 这个文件是YAML格式。
默认的配置适用于大部分用户场景。无论如何,对于生产环境,我们推荐打开安全章节并且启用用户鉴权: /etc/mongod.conf
security:
authorization: enabled
这个authorization选项启用了Role-Based Access Control (RBAC),它规定了用户对数据和操作的访问规则。 如果这个选项被禁用,那么每个用户都可以访问任何数据,执行任何操作。
在对 MongoDB 配置文件做任何修改之后,重启 mongod 服务:
sudo systemctl restart mongod
想要了解关于MongoDB配置选项的信息,请浏览 配置文件选项文档页面。
三、创建 MongoDB 管理员
如果你启用了 MongoDB 用户鉴权,你需要创建一个管理员用户,可以访问并且管理 MongoDB 实例。
首先,访问 MongoDB shell:
mongo
输入下面的命令,连接admin数据库:
use admin
switched to db admin
创建一个新用户,名称为mongoAdmin,赋予userAdminAnyDatabase角色:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
退出 Mongo shell:
quit()
想要测试修改,使用你之前创建的管理员账号访问 mongo shell:
mongo -u mongoAdmin -p --authenticationDatabase admin
MongoDB shell version v4.2.3
Enter password:
use admin
switched to db admin
现在,打印用户:
show users
{
"_id" : "admin.mongoAdmin",
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
mongodb设置后台运行
我们要在mongodb下面创建data目录和logs目录,用于存放data和logs。
设置好了之后,我们通常通过
mongod --dbpath /usr/local/mongodb/data
让mongodb启动。
但是我们关闭shell,mongodb就停止运行了。如果想在后台运行,启动时只需添加 --fork函数即可。可以在日志路径后面添加–logappend,防止日志被删除。
代码如下:
mongod --fork --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb2.log --logappend
这样,你关闭shell,在打开shell,照常可以允许mongo了!
mongodb设置开机启动。
当我们把服务器关闭,重启之后,发现mongodb又停止了,有没有开机就启动的方法呢?我们把上面代码放到/etc/rc.local,中,就可以了。
具体操作步骤:
vim /etc/rc.local
添加上面启动代码:
/usr/local/mongodb/bin/mongod --fork --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb2.log --logappend
下次重启就可以直接运行mongodb了!
本地 mongoDB compass 连接远程数据库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-77KqBQb7-1658590737333)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/cffec9a067fa48e2929e90fdb4824d34~tplv-k3u1fbpfcp-watermark.image)]
- 1.Hostname默认是localhost,此处填写域名或者ip号会提示"Error creating SSH Tunnel: (SSH) Channel open failure: Connection refused"。
(点击 CONNECT 之前确认一下服务器上是否已启动数据库)
- 2.Port默认是27017.
- 3.一般我们通过SSH连接,此处填写与shell相同的连接信息即可。
- 4.找到/etc下的mongod.conf,把 “bindIp: 127.0.0.1” 这一句注释掉,即在前面加一个"#",使其能通过外链连接。
- 5.需要修改服务器上/etc/ssh下的sshd_config文件,增加一行 "AllowTcpForwarding yes,来允许其通过TCP进行连接。然后运行sudo systemctl start sshd.service 来重启ssh。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RjwmSvN3-1658590737335)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d7b4676d7fb641e5bc12e28e747e0269~tplv-k3u1fbpfcp-watermark.image)]
更多推荐
所有评论(0)