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

  

 

posted @   ForLivetoLearn  阅读(154)  评论(0编辑  收藏  举报
编辑推荐:
· 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 加持,客户体验更智能
点击右上角即可分享
微信分享提示