MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。git
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构很是松散,是相似json的bson格式,所以能够存储比较复杂的数据类型。Mongo最大的特色是它支持的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。mongodb
官网:https://www.mongodb.com/shell
MongoDB的安装教程在官网能够找到。数据库
咱们能够下载安装包进行安装或者使用yum软件包管理。json
因为咱们公司要使用阿里云提供的MongoDB因此选择3.4版本进行测试windows
3.4版本yum安装说明:https://docs.mongodb.com/v3.4/tutorial/install-mongodb-on-red-hat/session
安装说明写的很是详细,在这里我也没有必要复述了。数据结构
修改目录app
MongoDB默认状况下会将数据文件存储在 /var/lib/mongo 目录下,日志文件存储在 /var/log/mongodb 下。你也能够在 /etc/mongod.conf配置文件中指定数据文件和日志文件目录。分布式
# where to write logging data. 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
建立管理员帐户
只能在admin库中建立root用户
> use admin switched to db admin > db.createUser({user:"root",pwd:"111111",roles:["root"]}) Successfully added user: { "user" : "root", "roles" : [ "root" ] }
登录认证
默认状况下咱们是不须要使用用户名密码登录的,若是想要启用认证就须要修改配置文件激活认证。
security: authorization: enabled
远程访问
配置文件中的bindIp默认127.0.0.1只监听本机,改成0.0.0.0监听全部外网ip。
# network interfaces net: port: 27017 bindIp: 0.0.0.0 # Listen to local interface only, comment to listen on all interfaces.
启动
sudo service mongod start
开机启动
sudo chkconfig mongod on
重启
sudo service mongod restart
中止
sudo service mongod stop
查看日志
[root@demo ~]# tail -n 100 -f /var/log/mongodb/mongod.log 2018-06-22T15:51:17.381+0800 I CONTROL [main] ***** SERVER RESTARTED ***** 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] MongoDB starting : pid=28156 port=27017 dbpath=/var/lib/mongo 64-bit host=demo 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] db version v3.4.15 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] git version: 52e5b5fbaa3a2a5b1a217f5e647b5061817475f9 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] allocator: tcmalloc 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] modules: none 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] build environment: 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] distmod: rhel70 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] distarch: x86_64 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] target_arch: x86_64 2018-06-22T15:51:17.388+0800 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, processManagement: { fork: true, pidFilePath: "/var/run/mongodb/mongod.pid" }, storage: { dbPath: "/var/lib/mongo", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=406M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress), 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.585+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongo/diagnostic.data' 2018-06-22T15:51:17.634+0800 I INDEX [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" } 2018-06-22T15:51:17.634+0800 I INDEX [initandlisten] building index using bulk method; build may temporarily use up to 500 megabytes of RAM 2018-06-22T15:51:17.636+0800 I INDEX [initandlisten] build index done. scanned 0 total records. 0 secs 2018-06-22T15:51:17.636+0800 I COMMAND [initandlisten] setting featureCompatibilityVersion to 3.4 2018-06-22T15:51:17.637+0800 I NETWORK [thread1] waiting for connections on port 27017
后台管理shell
在后台管理shell中咱们能够经过执行命令的方式,完成建立数据库和数据维护等工做。
[root@demo bin]# cd /usr/bin [root@demo bin]# ./mongo MongoDB shell version v3.4.15 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.15 Server has startup warnings: 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 2018-06-22T15:51:17.419+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database. 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted. 2018-06-22T15:51:17.551+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2018-06-22T15:51:17.552+0800 I CONTROL [initandlisten] >
Mongo管理工具除了官方提供的MongoDB Compass外,在windows系统下可使用MongoVUE (付费),IOS系统下使用Robo 3T(免费推荐 https://robomongo.org/)。