阿里云服务器部署mongodb
在阿里云上买了个服务器,部署mongodb遇到一些坑,解决办法也是从网上搜集而来,把零零碎碎的整理记录一下。
服务器是:Alibaba Cloud Linux
下载安装
mongodb官网下载实在是太慢,可以从阿里镜像安装:阿里MongoDb镜像
使用yum安装
- 在/etc/yum.repos.d目录下添加mongodb-org.repo文件
vim命令:是编辑(新建)文件的命令,退出编辑的时候,按cd /etc/yum.repos.d vim mongodb-org.repo [mogodb-org] name=MongoDB Repository baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/ gpgcheck=0 enabled=1
esc
,然后输入:wq
退出报存。如果对linux命令不熟,用 Xftp 等工具直接上传也可以。
baseurl:在阿里镜像中,点击下载地址
后,选择的mongodb的版本的链接,根据选择的版本不同而不同,其他的不用变。 - 用yum安装
yum:linux下载包的命令,从上面添加的 .repo 文件中的 baseurl地址开始下载。yum -y install mongodb-org
-y
是为了免去安装的确认操作。
配置
安装完成了过后,找到配置mongodb的配置文件
rpm -qla | grep mongod.conf
- 修改配置文件
主要修改点:bindIp值改为 0.0.0.0,这样可以外网访问vim /etc/mongod.conf # mongod.conf systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log # 日志文件目录 # Where and how to store data. storage: dbPath: /var/lib/mongo # 数据目录 journal: enabled: true # engine: # mmapv1: # wiredTiger: # how the process runs processManagement: fork: true # fork and run in background pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile timeZoneInfo: /usr/share/zoneinfo # network interfaces net: port: 27017 #端口 # 修改ip bindIp: 0.0.0.0 # 这里默认是127.0.0.1,要改成0.0.0.0
如果对linux的指令不熟悉的,可以直接在 Xftp的工具里面选中文件,右键有编辑操作
运行
-
在
/etc/init.d
文件夹中添加开机启动脚本mongod
cd /etc/init.d vim mongod EXEC=/usr/bin/mongod CONF=/etc/mongod.conf LOCKFILE=/var/lock/subsys/mongod RETVAL=0 case "$1" in start) echo -n $"Starting mongod: " $EXEC -f $CONF RETVAL=$? echo [ $RETVAL -eq 0 ] && touch $LOCKFILE ;; stop) echo -n $"Stopping mongod: " $EXEC -f $CONF --shutdown RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f $LOCKFILE ;; restart) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/mongod {start|stop|restart}" >&2 exit 1 esac
-
运行权限
# 获取文件权限 chmod +x /etc/init.d/mongodb
-
启动
service mongod start
-
停止
service mongod stop
-
重启
service mongod restart
-
卸载
# 停止服务 service mongod stop # 删除安装的包 yum erase $(rpm -qa | grep mongodb-org) # 删除数据和日志 rm -rf /var/log/mongodb rm -rf /var/lib/mongo
验证
- 开启端口
mongodb默认端口为:27017,在配置文件/etc/mongod.conf
里可以查看
在阿里云后台,防火墙打开端口 - 浏览器访问
ip:27017 访问
问题排查
-
异常关闭时,手动关闭进程
如果启动失败,可能是由于系统异常关闭,可能会有进程没有退出#查看mongodb的进程 ps aux | grep mongod #根据查询的结果pid,关闭进程 kill -9 pid
mongod.lock 和 diagnostic.data文件删掉
-
自启动失效
如果mongodb自启动,查看配置文件/etc/mongod.conf
中fork配置是否有开启: