如何在Ubuntu上自定义MongoDB配置文件
在自定义配置文件前,需确保MongoDB已安装在Ubuntu系统上。若未安装,可通过以下命令安装官方版本(以Ubuntu 22.04为例):
sudo apt update
sudo apt install -y mongodb-org
安装完成后,确认MongoDB服务状态:
sudo systemctl status mongod
Ubuntu系统中,MongoDB的默认配置文件路径为/etc/mongod.conf。该文件采用YAML格式(需注意缩进和语法规范),是自定义配置的核心文件。
修改前务必备份原文件,避免配置错误导致服务无法启动:
sudo cp /etc/mongod.conf /etc/mongod.conf.bak
使用文本编辑器(如nano或vim)打开配置文件:
sudo nano /etc/mongod.conf
以下是常见自定义配置项及说明:
修改dbPath参数,指定MongoDB数据文件的存储目录(需提前创建目录并赋予MongoDB用户权限):
storage:
dbPath: /data/mongodb # 修改为自定义路径
journal:
enabled: true # 启用journal日志(用于数据恢复,建议开启)
调整日志输出路径、追加模式及详细程度:
systemLog:
destination: file # 日志输出到文件
logAppend: true # 以追加模式写入日志(避免重启覆盖旧日志)
path: /var/log/mongodb/mongod.log # 日志文件路径
verbosity: 1 # 日志详细程度(0-5,0为最少,5为最详细)
修改监听端口和绑定的IP地址:
net:
port: 27017 # 默认端口(可修改为其他未被占用的端口)
bindIp: 0.0.0.0 # 绑定到所有IP地址(允许远程连接;若仅需本地连接,设为127.0.0.1)
maxIncomingConnections: 10000 # 允许的最大连接数(默认10000,可根据需求调整)
启用身份验证(防止未授权访问):
security:
authorization: enabled # 开启用户权限验证(需提前创建用户)
# keyFile: /etc/mongodb/keyfile # 副本集节点间认证(可选,多节点部署时使用)
若需搭建复制集(高可用),需设置replSetName:
replication:
replSetName: myReplSet # 复制集名称(所有节点需一致)
MongoDB 3.0+默认使用wiredTiger引擎(支持压缩、事务),可调整其缓存大小:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 分配给WiredTiger引擎的缓存大小(根据系统内存调整,建议为物理内存的50%)
使用nano编辑器时,按Ctrl+O保存文件,按Ctrl+X退出。
修改配置后,需重启服务使更改生效:
sudo systemctl restart mongod
检查服务状态,确认是否启动成功:
sudo systemctl status mongod
检查配置文件语法:使用mongod命令测试配置文件是否正确:
sudo mongod --config /etc/mongod.conf --fork --logpath /var/log/mongodb/mongod.log
若输出about to fork child process, waiting until server is ready for connections,则表示配置正确。
连接MongoDB:使用mongo命令行工具连接数据库,验证身份验证、端口等配置:
mongo --host 127.0.0.1 --port 27017
若启用了authorization,需先创建用户并认证(参考MongoDB官方文档)。
mongodb)有读写权限:sudo chown -R mongodb:mongodb /data/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
authorization(身份验证)、journal(日志)、replication(复制集)等功能,提升数据安全性与可用性。