1 2 |
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能。 |
创建工作目录:
1 |
[root@mongodb ~]# mkdir /home/tools && cd /home/tools |
下载MongoDB软件包:
1 2 |
[root@mongodb /home/tools]# wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.6.10.tgz |
永久关闭大页内存:
1 2 3 4 5 6 7 8 9 |
[root@mongodb /home/tools]# vim /etc/rc.local ······ if test -f /sys/kernel/mm/transparent_hugepage/enabled;then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag;then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi |
临时关闭大页内存:
1 2 3 |
[root@mongodb /home/tools]# echo never > /sys/kernel/mm/transparent_hugepage/enabled [root@mongodb /home/tools]# echo never > /sys/kernel/mm/transparent_hugepage/defrag |
调整系统打开文件数:
1 2 3 4 |
#系统最大打开文件句柄疏数量 [root@mongodb /home/tools]# echo "* - nofile 65535" >> /etc/security/limits.conf #系统最大打开进程数量,默认4096 [root@mongodb /home/tools]# echo "* - noproc 65535" >> /etc/security/limits.conf |
创建用户:(官方建议用普通用户管理MongoDB)
1 2 |
[root@mongodb /home/tools]# groupadd -g 800 mongod && useradd -u 800 -g mongod mongod |
创建mongodb目录:
1 2 |
[root@mongodb /home/tools]# mkdir -p /mongodb/{bin,conf,log,data,pid} |
解压软件并拷贝文件:
1 2 3 4 |
[root@mongodb /home/tools]# tar xf mongodb-linux-x86_64-rhel70-3.6.10.tgz [root@mongodb /home/tools]# cp mongodb-linux-x86_64-rhel70-3.6.10/bin/* /mongodb/bin [root@mongodb /home/tools]# chown -R mongod.mongod /mongodb/ |
添加环境变量:
1 2 3 4 5 6 7 8 9 10 |
#切换用户 [root@mongodb /home/tools]# su - mongod #添加环境变量 [mongod@mongodb ~]$ vim ~/.bash_profile ······ export PATH=/mongodb/bin:$PATH #生效 [mongod@mongodb ~]$ source ~/.bash_profile |
添加MongoDB配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[root@mongodb /home/tools]# vim /mongodb/conf/mongodb.conf systemLog: destination: file logAppend: true path: /mongodb/log/mongodb.log storage: journal: enabled: true dbPath: /mongodb/data directoryPerDB: true wiredTiger: engineConfig: cacheSizeGB: 1 directoryForIndexes: true collectionConfig: blockCompressor: zlib indexConfig: prefixCompression: true processManagement: fork: true pidFilePath: /mongodb/pid/mongod.pid net: port: 27017 bindIp: 127.0.0.1,10.0.0.61 |
配置systemd管理:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@mongodb /home/tools]# vim /usr/lib/systemd/system/mongodb.service [Unit] Description=mongodb After=network.target remote-fs.target nss-lookup.target [Service] User=mongod Type=forking ExecStart=/mongodb/bin/mongod -f /mongodb/conf/mongodb.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/mongodb/bin/mongod -f /mongodb/conf/mongodb.conf --shutdown PrivateTmp=true [Install] WantedBy=multi-user.target |
启动:
1 2 3 4 5 |
[root@mongodb /home/tools]# systemctl daemon-reload [root@mongodb /home/tools]# systemctl start mongodb.service [root@mongodb /home/tools]# systemctl enable mongodb.service |
测试
1 2 |
[root@mongodb /home/tools]# su - mongod [mongod@mongodb ~]$ mongo |