一、下载
链接: https://pan.baidu.com/s/1oV-BZFIoRaBWVhrQc1XXvg?pwd=ji5m 提取码: ji5m 复制这段内容后打开百度网盘手机App,操作更方便哦
二、解压文件
解压到 /usr/local
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.13.tgz -C /usr/local
三、准备工作
cd /usr/local/ mv mongodb-linux-x86_64-rhel70-4.4.13 MongoDB cd MongoDB # 创建data目录,用来存放数据库 mkdir -p ./data/db # 创建log目录用来存放日志文件 mkdir ./log
四、配置文件
vi mongod.conf
systemLog: #MongoDB发送所有日志输出的目标指定为文件 destination: file path: "/usr/local/MongoDB/log/mongod.log" logAppend: true storage: #mongod实例存储其数据的目录 dbPath: "/usr/local/MongoDB/data/db" journal: #启用或禁用持久性日志以确保数据文件保持有效和可恢复。 enabled: true processManagement: #启用在后台运行mongos或mongod进程的守护进程模式。 fork: true net: #服务实例绑定的IP,默认是localhost bindIp: 0.0.0.0 port: 27017
五、配置环境变量(可选)
vi /etc/profile #MongoDB ENVIRONMENT export PATH=$PATH:/usr/local/MongoDB/bin #使生效 source /etc/profile 除mongo/bin目录下 键入 mongo即可检查环境变量是否生效
六、设置开机启动
vi /lib/systemd/system/mongodb.service #内容如下 [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/MongoDB/bin/mongod --config /usr/local/MongoDB/mongod.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local/MongoDB/bin/mongod --shutdown --config /usr/local/MongoDB/mongod.conf PrivateTmp=true [Install] WantedBy=multi-user.target #授权 chmod +x /lib/systemd/system/mongodb.service systemctl daemon-reload systemctl start mongodb.service && systemctl enable mongodb.service
七、开启mongodb密码
配置最后一行,开启认证 systemLog: #MongoDB发送所有日志输出的目标指定为文件 destination: file path: "/usr/local/MongoDB/log/mongod.log" logAppend: true storage: #mongod实例存储其数据的目录 #dbPath: "/usr/local/MongoDB/data/db" dbPath: "/home/mongodb/data/db" journal: #启用或禁用持久性日志以确保数据文件保持有效和可恢复。 enabled: true #设置mongo内存占用 #wiredTiger: #engineConfig: #cacheSizeGB: 20 processManagement: #启用在后台运行mongos或mongod进程的守护进程模式。 fork: true net: #服务实例绑定的IP,默认是localhost bindIp: 0.0.0.0 port: 27017 maxIncomingConnections: 655350 security: authorization: enabled
八、too many open files问题
linux下会涉及mongodb打开文件个数限制问题,如下解决
vi /etc/security/limits.conf 文件最后添加 * soft nofile 655350 * hard nofile 655350 编辑 mongodb的service文件 如下所示,注释处添加两行 [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/MongoDB/bin/mongod --config /usr/local/MongoDB/mongod.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/usr/local/MongoDB/bin/mongod --shutdown --config /usr/local/MongoDB/mongod.conf PrivateTmp=true # 指定此进程可以打开的最大文件数 LimitNOFILE=655350 # 指定此进程可以打开的最大进程数 LimitNPROC=655350 [Install] WantedBy=multi-user.target 重启mongo服务
验证是否配置生效
查找mongodb进程id
ps -ef |grep mongod
其中1752是进程id,动态获取
cat /proc/1752/limits
如下图,既成功,可有效避免mongodb大数据量操作出现的自己kill自己的行为