由于工作需要安装 mongoDB,此文章用来记录一下安装过程以及遇到的问题的解决方案。本文综合网络教程和自己实际安装中遇到的问题及解决方案,原教程连接见文末。
先写一下安装并启动 mongoDB 正确的步骤,然后再总结其中遇到的问题。
一、安装过程
- 到 mongoDB 官网下载对应系统的压缩包。(注意不要选错系统版本,也可以在本地下载好后上传到云服务器)
- 默认下载路径是到用户目录下的 Downloads 目录,将其解压
tar -zxvf mongodb-linux-x86_64-3.2.12.tgz
- 将解压后的文件夹移动到 /usr/local/ 的 mongodb 目录下
mv -r mongodb-linux-x86_64-3.2.12 /usr/local/mongodb
- 配置系统文件 profile
sudo vi /etc/profile
插入下列内容:
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
注意保存后要重启系统配置:
source /etc/profile
- 创建用于存放数据和日志文件的文件夹,并修改其权限增加读写权限
cd /usr/local/mongodb
sudo mkdir -p data/db
sudo chmod -R 777 data/db
sudo mkdir logs
cd logs
touch mongodb.log
- mongodb 启动配置
进入到 bin 目录,增加一个配置文件:
cd /usr/local/mongodb/bin
sudo vi mongodb.conf
插入下列内容:
dbpath = /usr/local/mongodb/data/db #数据文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录
port = 27017 #端口
fork = true #以守护程序的方式启用,即在后台运行
nohttpinterface = true
- 启动 mongod 数据库服务,以配置文件的方式启动
cd /usr/local/mongodb/bin
./mongod -f mongodb.conf
- 连接 mongodb 数据库
./mongo
- 设置 mongodb.service 启动服务,设置开机启动
cd /lib/systemd/system
sudo vi 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/bin/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/mongodb/bin/mongod --shutdown --config /usr/local/mongodb/bin/mongodb.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 设置 mongodb.service 权限
chmod 754 mongodb.service
- 系统 mongodb.service 的操作命令如下:
#启动服务
systemctl start mongodb.service
#关闭服务
systemctl stop mongodb.service
#开机启动
systemctl enable mongodb.service
- mongodb.service 启动测试
二、实测安装过程中遇到的问题
- 原教程第五步:sudo chmod -r 777 data/db 此处报错
chmod: 无法访问"777": 没有那个文件或目录
修改为:
sudo chmod -R 777 data/db
- 原教程第六步设置配置文件后启动报错:
Error parsing INI config file: unrecognised option 'nohttpinterface'
try './mongod --help' for more information
将配置文件中该句删除,成功启动:
nohttpinterface = true
mongod: error while loading shared libraries: libnetsnmpmibs.so.30: cannot open shared object file: No such file or directory
这个报错信息是说找不到对应的库文件,原因是一开始我下错了安装包版本,所以在下载是一定要注意自己系统的版本
- 通过配置文件启动服务:mongod -f /etc/mongodb.conf 时报错
Error parsing INI config file: unrecognised option 'nohttpinterface' try './
这个一开始让我查了好久,后面查到是因为我下载的最新版本的 mongodb,而最新的版本貌似不支持以这种配置文件的方式来启动服务,所以无奈我又重新下载安装了 3.2.12 的版本,然后再次启动服务就正常了。
- 启动服务时报错:
about to fork child process, waiting until server is ready for connections.
forked process: 11335
ERROR: child process failed, exited with error number 1
这个错误原因是 dbpath 文件的权限问题, data 和 logs 目录增加写权限即可,上面提到了。