MongoDB | 安装和配置
Contents
Install Package Summary
MongoDB安装包说明:
mongodb-org
- 可自动安装以下四个包
mongodb-org-server
- 可安装mongod进程、配置文件和启动脚本
mongod
:核心基础进程,用来接受和读写请求,负责存储实际数据; mongod实例是负责构建集群的基本单位,如Replica Set, Sharding Cluster、Config Server
mongodb-org-mongos
- 可安装mongos进程
mongos
:集群核心基础进程,是Sharding Cluster架构模式中的“路由”进程;即将客户端的请求转发到合适的Shard Server进行处理并将结果返回给客户端; mongos服务基本不存储数据,只是在内存中缓存部分shard key与shard server的对应关系,方便理由。
mongodb-org-shell
mongodb-org-tools
- mongoimport, mongoexport, mongodump, mongrestore, mongofiles, bsondump, mongooplog, mongoperf, mongostat, mongotop, (mongosniff)
Windows
平台:Windows10-64bit
Download & Install
Configure MongoDB
|
|
Create MongoDB Service
|
|
Start MongoDB Service
|
|
Linux
平台
- Ubuntu14|16.04-LTS-64bit
- CentOS-7-64bit
Download & Install
Ubuntu
导入包管理系统使用的公钥
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
Create a list file for MongoDB
$ echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
更新软件源列表
$ sudo apt-get update
安装mongodb(默认是安装稳定版)
$ sudo apt-get install -y mongodb-org
Centos-7
Official Mongo-Centos-Install Doc
安装之前确保关闭SELinux防护,否则会出现服务启动失败
查看状态:
$ cat /etc/selinux/config |grep -v '#' |grep -i selinux
1 2 3
# 输出该信息表示关闭 SELINUX=disabled SELINUXTYPE=targeted
如果没有则需要关闭SELinux,并且重启
$ sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
$ reboot
保存如下内容到 /etc/yum.repos.d/mongodb-org-3.4.repo
1 2 3 4 5 6
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
sudo yum install -y mongodb-org
Overview
/var/lib/mongodb
:MongoDB数据文件/var/log/mongodb
:MongoDB日志文件/etc/mongod.conf
:MongoDB配置文件,可在该文件指定数据和日志文件存放目录/etc/init.d/mongodb
:ubuntu的mongod服务启动控制脚本/usr/lib/systemd/system/mongod.service
:centos的mongod服务启动控制脚本mongo
:MongoDB客户端程序mongod
:MongoDB服务端程序默认由mongodb用户运行
Config mongod
注:
- ubuntu安装完成后没有生成 mongod.service脚本
- centos有生成mongod.service服务脚本,root账号使用该脚本时需要修改脚本相关属性为root。如果不配置此脚本将会导致服务启动失败。
- 在mongod.conf中一定要开启Linux后台运行配置选项
创建目录文件
1 2 3 4 5 6 |
# 创建数据存放目录 $ mkdir -p /home/mongo/data/db # 创建日志文件存放目录 $ mkdir -p /home/mongo/log/ $ cd /home/mongo/log/ && touch mongod.log |
配置数据和日志文件目录
1 2 3 4 5 6 |
$ vim /etc/mongod.conf storage: dbPath: /home/mongo/data/db systemLog: path: /home/mongo/log/mongod.log |
配置远程访问
1 2 3 4 5 6 7 8 |
net: port: 27017 bindIp: 127.0.0.1 # 多个ip配置方式如下 # bindIp: [127.0.0.1,192.168.1.105,xxx] # bindIp: 127.0.0.1 表示只允许本地连接 # bindIp: 0.0.0.0 表示允许所有外网连接 |
开启Linux后台运行
1 2 |
processManagement: fork: true |
配置实例:
CentOS的配置步骤
- 配置 mongod.conf
- 软连接 /home/mongo/mongod.conf 到 /etc/mongod.conf(可选)
- 修改 mongo.service配置
Enable configure file
ubuntu
直接启动
1 2 3
$ mongod --config /etc/mongod.conf # 或者 $ mongod -f /etc/mongod.conf
开机启动
1 2 3 4 5 6
# 将MongoDB启动配置文件加入到开机启动脚本 $ vim /etc/profile # Set MongoDB Config # `&` 表示在后台执行该命令,如果不加则会导致阻塞 $ /usr/bin/mongod --config /etc/mongod.conf &
centos
- mongod.serice 控制
运行
Start MongoDB
1 2 3 4
$ sudo service mongod start $ systemctl start mongod # 启动客户端 $ mongo
Stop MongoDB
1 2
$ sudo service mongod stop $ systemctl stop mongod
Restart MongoDB
1 2
$ sudo service mongod restart $ systemctl restart mongod
Lookup status
1 2
$ sudo service mongod status $ systemctl status mongod
卸载
先停止MongoDB服务
1
$ sudo service mongod stop
删除软件包
1 2
$ apt-get purge mongodb-org* $ sudo yum erase $(rpm -qa | grep mongodb-org)
删除数据和日志文件
1 2
$ rm -rf /home/data/db/ $ rm -rf /home/data/log/
See Also
Thanks to the authors 🙂