### MongoDB简介 MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有: >* 面向集合存储,易存储对象类型的数据。 * 模式自由、支持查询、支持动态查询。 * 支持完全索引,包含内部对象。 * 支持复制和故障恢复。 * 使用高效的二进制数据存储,包括大型对象(如视频等)。 * 自动处理碎片,以支持云计算层次的扩展性。 * 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 * 文件存储格式为BSON(一种JSON的扩展)。 * 可通过网络访问。 ### 安装配置 如果shell启动进程所占的资源设置过低,将会产生错误导致无法连接,需要设置ulimit -n 和ulimit -u 的值大于20000. ``` # ulimit -n 25000 # ulimit -u 25000 ``` ``` [root@test4-8g ~]# systemctl stop firewalld && systemctl disable firewalld [root@test4-8g ~]# setenforce 0 [root@test4-8g ~]# cat /etc/selinux/config SELINUX=disabled [root@test4-8g ~]# getenforce 0 Permissive ``` 1.YUM安装 ``` [root@test4-8g ~]# vim /etc/yum.repos.d/mongodb-org-4.0.repo [mongodb-org-4.0] name = MongoDB Repository baseurl = https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck = 1 enabled = 1 gpgkey = https://www.mongodb.org/static/pgp/server-4.0.asc ``` ``` [root@test4-8g ~]# yum install -y mongodb-org ``` 启动: ``` [root@test4-8g ~]# service mongod start [root@test4-8g ~]# mongo ····· To permanently disable this reminder, run the following command: db.disableFreeMonitoring() --- > ``` 2.下载Tar包,解压安装 安装包地址:https://www.mongodb.com/downloads Tar包安装解决依赖: ``` [root@test4-8g ~]# yum install libcurl openssl [root@test4-8g ~]# tar xzvf mongodb-linux-x86_64-rhel70-4.0.2.tgz -C /usr/local/ ``` ``` [root@test4-8g ~]# ln -s mongodb-linux-x86_64-rhel70-4.0.2/ /usr/local/mongodb ``` 创建数据存储目录和日志文件目录 ``` [root@test4-8g ~]# mkdir -p /usr/local/mongodb/data/db [root@test4-8g ~]# mkdir -p /usr/local/mongodb/logs ``` 编辑MongoDB启动配置文件 ``` [root@test4-8g ~]# cd /usr/local/mongodb/bin [root@test4-8g bin]# vim mongodb.conf dbpath = /usr/local/mongodb/data/db //数据存储目录 logpath = /usr/local/mongodb/logs/mongodb.log //日志文件目录 fork = true //后台运行 #auth=true bind_ip=0.0.0.0 ``` MongoDB 的可执行文件位于 bin 目录下,需要将其添加到 PATH 路径中 ``` [root@test4-8g bin]# vim /etc/profile export MONGODB_HOME=/usr/local/mongodb export PATH=$PATH:$MONGODB_HOME/bin //末尾处添加 ``` ``` [root@test4-8g bin]# source /etc/profile //重新加载环境变量 ``` 启动MongoDB ``` [root@test4-8g bin]# mongod -f mongodb.conf 2018-09-27×××5:50:18.042+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none' about to fork child process, waiting until server is ready for connections. forked process: 19149 child process started successfully, parent exiting ``` ``` [root@test4-8g bin]# lsof -i:27017 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mongod 19149 root 11u IPv4 49167 0t0 TCP *:27017 (LISTEN) ``` 连接MongoDB并访问 ``` [root@test4-8g bin]# /usr/local/mongodb/bin/mongo ······ For interactive help, type "help". For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user > ``` ``` [root@test4-8g bin]# mongo MongoDB shell version v4.0.2 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 4.0.2 > ```