在CentOS系统中部署和配置MongoDB是一个系统性的过程,涉及安装、启动、核心参数调整以及安全加固,本文将详细介绍这一系列操作,帮助您构建一个稳定可靠的MongoDB环境。
安装MongoDB社区版
在CentOS上安装MongoDB最推荐的方式是使用其官方的YUM仓库,这样可以确保软件的版本最新且便于后续管理。
创建一个名为mongodb-org-6.0.repo
的仓库配置文件(版本号可根据需要调整),并将其放置在/etc/yum.repos.d/
目录下,可以使用vi
或nano
编辑器:
sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo
在文件中填入以下内容:
[mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
保存并退出后,执行以下命令安装MongoDB的最新稳定版:
sudo yum install -y mongodb-org
该命令会安装MongoDB服务器、mongosh shell、mongod守护进程以及其他相关工具。
启动服务与设置开机自启
安装完成后,MongoDB服务默认是未启动的,使用systemctl
命令来管理服务状态。
启动MongoDB服务:
sudo systemctl start mongod
检查服务状态,确认其正在运行:
sudo systemctl status mongod
为了确保服务器重启后MongoDB能自动运行,需要将其设置为开机自启:
sudo systemctl enable mongod
核心配置文件详解
MongoDB的主要配置文件位于/etc/mongod.conf
,该文件采用YAML格式,结构清晰,修改任何配置后,都需要重启MongoDB服务才能生效,以下是一些关键配置项的说明:
配置块 | 参数 | 说明 | 示例值 |
---|---|---|---|
systemLog | path | 日志文件存储路径 | /var/log/mongodb/mongod.log |
logAppend | 是否以追加模式写入日志 | true | |
net | port | MongoDB监听的端口 | 27017 |
bindIp | 绑定的IP地址,决定哪些客户端可以连接 | 0.0.1 (仅本地) | |
storage | dbPath | 数据文件存储路径 | /var/lib/mongo |
journal.enabled | 是否启用日志(持久化保证) | true | |
processManagement | fork | 是否以守护进程方式运行 | true |
security | authorization | 是否启用用户访问控制 | disabled (默认) |
配置远程访问与安全认证
默认情况下,MongoDB只允许本地连接(bindIp: 127.0.0.1
),并且没有启用认证,在生产环境中,这两项配置必须调整。
开启远程访问
编辑/etc/mongod.conf
文件,找到net.bindIp
项,若要允许所有IP地址访问,可以修改为0.0.0
,但更安全的做法是指定具体的IP地址或使用逗号分隔多个IP。
net: port: 27017 bindIp: 0.0.0.0 # 修改为你的服务器IP或0.0.0.0
修改后,还需要配置CentOS的防火墙,放行MongoDB的默认端口27017:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent sudo firewall-cmd --reload
启用安全认证
在未启用认证的情况下,创建一个管理员用户。
连接到MongoDB shell:
mongosh
切换到admin
数据库并创建用户:
use admin db.createUser({ user: "myAdmin", pwd: passwordPrompt(), // 或直接使用 "your_secure_password" roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
创建成功后,退出shell,再次编辑/etc/mongod.conf
,在文件末尾添加security
配置块:
security: authorization: enabled
保存文件并重启MongoDB服务:
sudo systemctl restart mongod
之后,连接MongoDB就需要进行身份验证了:
mongosh -u myAdmin -p --authenticationDatabase admin
相关问答FAQs
问题1:忘记MongoDB管理员密码怎么办?
解答: 如果忘记了管理员密码,可以通过以下步骤重置,编辑/etc/mongod.conf
,注释掉或删除security.authorization: enabled
这一行,即暂时禁用认证,然后重启MongoDB服务(sudo systemctl restart mongod
),你可以无密码登录,按照上文所述的方法重新创建或修改用户密码,完成后,务必重新启用认证并再次重启服务。
问题2:修改配置文件后,MongoDB服务无法启动怎么办?
解答: 这通常是配置文件语法错误或参数设置不当导致的,应检查MongoDB的日志文件,它位于配置文件中systemLog.path
指定的路径(默认为/var/log/mongodb/mongod.log
),日志文件的末尾通常会包含详细的错误信息,YAML语法错误”、“端口被占用”或“数据目录权限不足”等,根据日志提示修正/etc/mongod.conf
文件中的错误,然后再次尝试启动服务。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复