什么是mongoDB?
mongoDB是一个文档数据库,具有可扩展性和灵活性,并提供所需要的查询和索引
mongoDB将数据存储在灵活的类JSON文档中,意味着看你因文档而异,数据结构可以随着时间的推移而改变
文档模型映射到应用程序代码中的对象,使数据易于使用
即时查询,索引和实时聚合提供了强大的访问和数据的方法
mongoDB是一个分布式数据库,其核心是高可用性、水平扩展和地理分布,内置并易于使用
mongoDB是免费和开源的,根据GNU Affero通用公共许可证发布
这里安装以centos7为例,介绍两种安装方式:1、使用rpm包;2、使用tar包
使用RPM包软件安装
虽然Red Hat(CentOS)包含自己的mongoDB包,但使用官方mongoDB社区软件包可以确保拥有最新版本
mongoDB在自己的存储库中提供官方支持的软件包。此存储库包含以下软件包
[root@c1 ~]# rpm -qa| grep mongodb
mongodb-org-mongos-3.4.5-1.el7.x86_64 #包含mongos守护进程
mongodb-org-shell-3.4.5-1.el7.x86_64 #包含mongoshell
mongodb-org-server-3.4.5-1.el7.x86_64 #包含mongod守护程序和关联的配置和init脚本,提供了一个启动初始化脚本mongod和/etc/mongod.conf配置文件
mongodb-org-tools-3.4.5-1.el7.x86_64 #包含mongoDB的一些工具
mongodb-org-3.4.5-1.el7.x86_64 # metapackage将自动安装以上列出的四个组件包
1、配置包管理系统(yum)
创建一个/etc/yum.repos.d/mongodb-org-3.4.repo
文件,使得我们可以直接用yum安装mongodb
[root@c1 ~]# vim /etc/yum.repos.d/mongodb-org-3.4.repo
[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
注意:如果要安装早期版本系列(如2.4或2.6)安装软件包,可以在存储库配置指定版本系列。例如,要将系统限制为2.6版本,请创建一个 /etc/yum.repos.d/mongodb-org-2.6.repo
文件以保存MongoDB 2.6存储库的以下配置信息:
[mongodb-org-2.6]
name = MongoDB 2.6 Repository
baseurl = http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck = 0
enabled = 1
我们可以在https://repo.mongodb.org/yum/redhat/找到.repo每个版本的文件。请记住,奇数编号的次要版本(例如2.5)是开发版本,不适合生产使用
2、安装mongoDB软件包和相关工具
[root@c1 ~]# yum install -y mongodb-org
3、数据目录和权限
mongoDB实例默认存储数据文件/var/lib/mongo及其日志文件/var/log/mongodb,并使用mongod用户运行
我们可以在/etc/mongod.conf指定备用日志和数据文件目录
如果更改运行的mongoDB进程用户,则必须修改对/var/lib/mongo和/var/log/mongodb目录的访问控制权限,以使该用户能够访问这些目录
4、启动mongoDB
/var/log/mongodb/mongod.log
5、地址端口
mongoDB的默认服务端口是27017,并且只监听地址127.0.0.1,我们可以通过修改配置文件来监听其他ip
[root@c1 ~]# vim /etc/mongod.conf
...
net:
port: 27017
bindIp: 127.0.0.1,192.168.88.1
...
6、卸载mongoDB
要从系统中完全删除MongoDB,必须删除MongoDB应用程序本身,配置文件以及包含数据和日志的任何目录。以下部分将指导您完成必要的步骤
警告:此过程将完全删除MongoDB,其配置和所有 数据库。此过程不可逆,因此请确保在继续之前备份所有配置和数据
1、停止mongoDB
# systemctl stop mongod
2、删除软件包
# yum erase $( rpm -qa | grep mongodb-org )
3、删除MongoDB数据库和日志文件
# rm -r /var/log/mongodb
# rm -r /var/lib/mongo
TAR包安装
1、下载最新稳定版软件包
mongodb-linux-x86_64-rhel70-3.4.5.tgz
2、解压创建软链接
tar zxf mongodb-linux-x86_64-rhel70-3.4.5.tgz -C /application/
cd /application/
ln -s mongodb-linux-x86_64-rhel70-3.4.5 mongodb
3、创建组和用户
groupadd mongo
useradd -g mongo mongo
4、创建数据目录
mkdir /data/mongodb_data
chown -R mongo.mongo /data/mongodb_data
5、创建相关目录
cd /application/mongodb
mkdir conf #存放配置文件
mkdir log #存放日志
mkdir pid #存放pid
chown -R mongo.mongo /application/mongodb
6、配置环境变量
vim /etc/profile.d/mongodb.sh
export PATH=/application/mongodb/bin:$PATH
source /etc/profile.d/mongodb.sh
7、切换到mongo用户
su - mongo
8、创建mongodb配置文件
$ vim /application/mongodb/conf/mongod.conf
systemLog:
destination: file #MongoDB发送所有日志输出的目的地。默认是syslog,如果指定file,还必须指定下面的path(日志文件路径)
logAppend: true #重启实例,将新条目附加到现有日志文件的末尾。没有此选项,将备份现有日志并创建新文件
path: /application/mongodb/log/mongod.log #日志文件路径
storage:
dbPath: /data/mongodb_data #数据目录
journal:
enabled: true #可以进行日志记录,确保单实例写耐用性。mongod默认情况下启用日志记录的64构建,因此,该设置可能是多余的
processManagement:
fork: true #启动后台守护进程模式
pidFilePath: /application/mongodb/pid/mongod.pid #指定pid文件路径
net:
port: 27017 #指定服务端口
bindIp: 127.0.0.1 #指定监听的地址,如果想监听多个如: bindIp: 127.0.0.1,192.168.88.1
9、启动mongoDB
$ mongod -f /application/mongodb/conf/mongod.conf
10、进入mongoDB的shell客户端
$ mongo
11、停止mongoDB
$ mongod -f /application/mongodb/conf/mongod.conf --shutdown
其他:
写了一个启动配置脚本,因为mongoDB无法配置启动程序的用户(和tomcat一个尿性),因此,只能使用root运行,如果想使用mongo运行请使用上面手动进入mongo用户执行启动命令,
下面贴出脚本:
[Unit]
Description=MongoDB daemon
[Service]
Type=forking
PIDFile=/application/mongodb/pid/mongod.pid
ExecStart=/application/mongodb/bin/mongod -f /application/mongodb/conf/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
每天进步一点,加油!