centos8安装MongoDB centos8安装MongoDB的详细过程
weixin_46106069 人气:2MongoDB是什么:
MongoDB是一个棉线文档的开源NoSQL数据库管理系统。
MongoDB是一个开源,跨平台,面向文档的数据库管理系统。MongoDB是NoSQL(不仅是SQL)数据库软件。MongoDB使用带有模式的文档之类的JSON(JavaScript对象表示法)。MongoDB由MongoDB Inc开发,并根据SSPL(服务器端公共许可证)进行分发。
centos8中安装MongoDB yum存储库:
1.在/etc/yum.repo.d目录中创建一个回购文件,以在CentOS 8服务器中安装MongoDB yum存储库。
vim /etc/yum.repos.d/mongodb-org-4.4.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
2.为MongoDB存储库构建缓存。
dnf clean all dnf makecache dnf repolist
centos8中为MongoDB设置资源限制:
我们需要根据MongoDB软件的要求在centos8服务器中设置资源限制。
为此,为MongoDB创建资源限制配置文件,如下:
vim /etc/security/limits.d/mongod.conf 并在其中添加以下资源限制: mongod soft nproc 64000 mongod hard nproc 64000 mongod soft nofile 64000 mongod hard nofile 64000
在centos8上安装MongoDB数据库:
1.我们可以从新添加的yum存储库在centos 8服务器上安装MongoDB:
dnf list -y mongodb-org dnf -y install mongodb-org
2.启用并启动MongoDB数据库服务。
systemctl enable --now mongod.service
3.启动成功后,检查MongoDB的服务状态和端口监听信息。
systemctl status mongod.service
netstat -anplt|grep mongod
centos8上为MongoDB创建selinux策略:
1.如果您已将selinux配置为强制模式,则必须为MongoDB创建selinux策略。
检查当前的selinux模式:
getenforce
2.我们需要checkpolicy命令来验证自定义selinux策略,安装checkpolicy。
dnf -y install checkpolicy
3.创建一个定制的selinux策略文件。
vim mongodb_cgroup_memory.te 在文件中添加以下指令: module mongodb_cgroup_memory 1.0; require { type cgroup_t; type mongod_t; class dir search; class file { getattr open read }; } #============= mongod_t ============== allow mongod_t cgroup_t:dir search; allow mongod_t cgroup_t:file { getattr open read };
4.编译并应用此selinux策略。
checkmodule -M -m -o mongodb_cgroup_memory.mod mongodb_cgroup_memory.te semodule_package -o mongodb_cgroup_memory.pp -m mongodb_cgroup_memory.mod semodule -i mongodb_cgroup_memory.pp
MongoDB中创建管理员用户:
默认情况下,MongoDB服务器重未启用访问控制,因此任何人都可以访问MongoDB服务器并执行管理操作。
所以我们需要创建一个admin用户并在MongoDB服务器中启用访问控制。
连接MongoDB shell:
mongo
连接管理数据库:
> use admin; switched to db admin >
创建管理员用户:
> db.createUser( ... { ... user: "admin", ... pwd: "xu123", ... roles: [ { role: "userAdminAnyDatabase",db: "admin" } ] ... } ... )
列出MongoDB数据库中所有用户。
> show users
MongoDB服务器中启用访问控制:
最初,访问控制在MongoDB服务器中被禁用。因此,任何具有centos 8服务器操作系统级访问权限的用户都可以连接到MongoDB实例并在数据库上执行管理操作。这就是为什么我们能够在上一步中创建管理员用户而无需任何身份验证的原因。
要为MongoDB服务器启用访问控制,我们需要为MongoDB.service编辑systemd单元文件。
vim /usr/lib/systemd/system/mongod.service 在此文件中找到以下行: Environment="OPTIONS=-f /etc/mongod.conf" 将其替换成: Environment="OPTIONS=--auth -f /etc/mongod.conf"
重载systemd并重新启动MongoDB服务以更改应用
systemctl daemon-reload systemctl restart mongod.service
要检查访问控制,连接MongoDB shell并执行一些管理命令
mongo use admin show users
这次“show user”命令引发身份验证错误,它确认在我们的MongoDB服务器中已启用访问控制。
现在,以管理员用户身份连接。
> db.auth("admin",passwordPrompt()) Enter password: ###输入我们前面设置的是密码
现在,执行相同的命令,以检查其是否正常运行。
show user
已成功使用特权用户执行命令“显示用户”。
MongoDB数据库的访问控制已启用。
MongoDB数据库和日志目录:
以下是两个目录,对MongoDB数据库管理员来说非常重要。
/var/lib/mongo-数据目录(默认)
/var/log/mongodb-日志目录(默认)
我们可以通过在/etc/mongodb.conf文件中设置以下参数来自定义以上目录。
storage.dbPath-指定新的数据目录路径
systemLog.path-指定新的日志文件路径
加载全部内容