MongoDB —— 安装与配置

简介

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/)。 

相关文章
相关标签/搜索