MongoDB安装、配置
安装部署
- 系统准备
1 2 3 4 5 | (1)redhat或cnetos6.2以上系统 (2)系统开发包完整 (3)ip地址和hosts文件解析正常 (4)iptables防火墙&SElinux关闭 (5)关闭大页内存机制 |
- 关闭大页内存机制
1 2 3 4 5 6 7 8 9 10 11 12 13 | #永久关闭:root用户下/etc/rc.local最后添加如下代码 if test -f /sys/kernel/mm/transparent_hugepage/enabled ; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag ; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi #临时关闭: ] # echo never > /sys/kernel/mm/transparent_hugepage/enabled ] # echo never > /sys/kernel/mm/transparent_hugepage/defrag #其他系统关闭参照官方文档:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/ |
- 关闭打开文件限制数
1 2 3 | #修改/etc/security/limits.conf,最后加入 * soft nofile 65535 * hard nofile 65535 |
- 创建mongod用户和组
1 | ] # useradd mongod |
- 创建mongo所需工作目录
1 2 3 4 5 | ] # mkdir -pv /mongodb/{conf,log,data} mkdir : 已创建目录 "/mongodb" mkdir : 已创建目录 "/mongodb/conf" mkdir : 已创建目录 "/mongodb/log" mkdir : 已创建目录 "/mongodb/data" |
- 下载软件包,解压后把bin目录下的内容复制到刚刚创建的目录
1 2 3 4 | ] # tar xf mongodb-linux-x86_64-rhel70-3.4.24.tgz ] # mv mongodb-linux-x86_64-rhel70-3.4.24/bin/ /mongodb/ ] # ls /mongodb/ bin conf data log |
- 设置工作目录权限
1 | ] # chown -R mongod:mongod /mongodb/ |
- 设置环境变量
1 2 3 4 | ] # vim /etc/profile.d/mongod.sh export MONGO_PATH= /mongodb export PATH=$PATH:$MONGO_PATH /bin ] # source /etc/profile.d/mongod.sh |
- 创建配置文件,注意文件权限
1 2 3 4 5 6 | ] # vim /mongodb/conf/mongodb.conf logpath= /mongodb/log/mongodb .log dbpath= /mongodb/data port=27017 logappend= true fork= true |
- 以mongod用户启动程序
1 2 3 4 | ] # su -s '/bin/bash' -c 'mongod -f /mongodb/conf/mongodb.conf' mongod about to fork child process, waiting until server is ready for connections. forked process: 81298 child process started successfully, parent exiting |
- 关闭程序
1 2 | ~] # su -s '/bin/bash' -c 'mongod -f /mongodb/conf/mongodb.conf --shutdown' mongod killing process with pid: 81392 |
配置文件
新版本的mongo官方建议使用yaml格式配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #系统日志有关 systemLog: destination: file path: "/mongodb/log/mongodb.log" #日志位置 logAppend: true #日志以追加模式记录 #数据存储有关 storage: journal: enabled: true dbPath: "/mongodb/data" #数据路径的位置 #进程控制 processManagement: fork: true #后台守护进程 pidFilePath: <string> #pid文件的位置,一般不用配置,可以去掉这行,自动生成到data中 #网络配置有关 net: bindIp: <ip> #监听地址,如果不配置这行是监听在0.0.0.0 port: <port> #端口号,默认不配置端口号,默认27017 #安全验证有关配置 security: authorization: enabled #是否打开用户名密码验证 replication: oplogSizeMB: <NUM> replSetName: "<REPSETNAME>" secondaryIndexPrefetch: "all" sharding: clusterRole: <string> archiveMovedChunks: <boolean> --- for mongos only replication: localPingThresholdMs: <int> sharding: configDB: <string> --- |
systemd接管mongodb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [root@db01 ~] # cat > /etc/systemd/system/mongod.service <<EOF [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] User=mongod Type=forking ExecStart= /mongodb/bin/mongod --config /mongodb/conf/mongo .conf ExecReload= /bin/kill -s HUP $MAINPID ExecStop= /mongodb/bin/mongod --config /mongodb/conf/mongo .conf -- shutdown PrivateTmp= true [Install] WantedBy=multi-user.target EOF [root@db01 ~] # systemctl restart mongod [root@db01 ~] # systemctl stop mongod [root@db01 ~] # systemctl start mongod |
初学linux,每学到一点东西就写一点,如有不对的地方,恳请包涵!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能