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

相關文章
相關標籤/搜索