天天看點

MongoDB入門使用經驗

mongoDB是什麽
mongodb是時下流行的NoSql資料庫,它的存儲方式是文檔式存儲,并不是Key-Value形式。
存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一辨別一個文檔,為字元串類型,而值則可以是各種複雜的檔案類型。我們稱這種存儲形式為BSON(Binary JSON)。
模式自由(schema-free),意味着對于存儲在mongodb資料庫中的檔案,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的檔案存儲在同一個資料庫裡。
mongodb中有三元素:資料庫,集合,文檔,其中“集合”就是對應關系資料庫中的“表”,“文檔”對應“行”。

windows7下面安裝好了mongodb.msi後;還需要配置一個db,即是mongodb的資料庫:
           

1.安裝的mongodb檔案:

D:\MongoDB\Server\3.4\bin

2.建立的一個資料庫檔案和一個日志檔案

D:\MongoDB\data\db(以後啟動資料庫的時候就會用到它了)

D:\MongoDB\data\log

3.運作cmd.exe進入dos指令界面,執行下列指令,啟動MongoDB

  > cd d:\mongodb\bin

  > d:\mongodb\bin>mongod -dbpath “d:\mongodb\data\db”

看到如圖資訊則說明啟動成功,預設MongoDB監聽的端口是27017,mysql的是3306

4.一個shell管理背景

D:\MongoDB\Server\3.4\bin\mongo.exe(管理你的資料庫)

3步要啟動後4步才連結。4步要連結必須3步先啟動。

2. 安裝mongoDB
MongoDB安裝很簡單,基本無需安裝,安裝包解壓後即可使用。
2.1 用tar包安裝
2.1.1 從官網下載下傳最新版本mongoDB的tar包,解壓
           

$ curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.7.tgz

$ tar -zxvf mongodb-linux-x86_64-3.0.7.tgz

$ mkdir -p mongodb

$ cp -R -n mongodb-linux-x86_64-3.0.7/ mongodb

2.1.2 建立資料目錄
           

$ mkdir -p /data/mongodb

2.1.3 啟動mongoDB,有兩種方法:
指令行指定資料目錄啟動
           

$ mongod –dbpath /data/mongodb –logpath /var/log/mongodb.log

指定配置檔案啟動
           

$ mongod -f /etc/mongod_27019.conf

停止mongoDB
           

$ mongod -f /etc/mongod_27019.conf –shutdown

2.2 用yum安裝
本文例子是在Cent OS 7上進行安裝,mongoDB版本是3.0
2.2.1 添加yum源
           

$ vi /etc/yum.repos.d/mongodb-org-3.0.repo

[mongodb-org-3.0]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/

gpgcheck=0

enabled=1

2.2.2 安裝mongoDB
           

$ yum install -y mongodb-org

2.2.3 啟動mongoDB
           

$ systemctl start mongod

設定檔案位置:/etc/mongod.conf
資料庫路徑:/var/lib/mongo
2.2.4 問題點

WARNING: Readahead for /var/lib/mongo is set to 4096KB
1. 日志裡出現上面的資訊,需要調整Readahead的大小
           

blockdev–report blockdev –setra 256 /dev/sda

$ blockdev –setra 256 /dev/dm-1

2. 日志裡出現下面資訊,需要修改核心參數
WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
關閉透明大頁
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
3. Cent OS 7上需要把mongoDB添加到systemd,否則會出現下面的錯誤
systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
将mongoDB添加到systemd

           

vi/usr/lib/systemd/system/mongod.service[Unit]Description=mongodbdatabase[Service]User=mongodGroup=mongodEnvironment=”OPTIONS=–quiet−f/etc/mongod.conf”ExecStart=/usr/bin/mongod OPTIONS run

PIDFile=/var/run/mongodb/mongod.pid

[Install]

WantedBy=multi-user.target

建立連結
           

$ ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/

重新加載systemctl
           

$ systemctl daemon-reload

設定檔案說明
設定檔案 /etc/mongod.conf
           

processManagement:

fork: true

net:

bindIp: 127.0.0.1

port: 27017

storage:

dbPath: /srv/mongodb

systemLog:

destination: file

path: “/var/log/mongodb/mongod.log”

logAppend: true

storage:

journal:

enabled: true

processManagement.fork: true 以daemon模式啟動mongod

net.bindIp: 指定IP,逗号分隔,注釋掉的情況下,服務啟動在0.0.0.0

systemLog.quiet: true 日志輸出使用quiet模式,隻輸出critical

storage.dbPath: 指定資料的存放位置

replication.replSetName: 副本集的名字

security.authorization: enabled 使用認證 security.keyFile: 使用keyFile verbosity: 日志開啟debug模式,0-5 operationProfiling.slowOpThresholdMs: slowlog設定,預設100 net.http.RESTInterfaceEnabled: rest接口是否有效 net.maxIncomingConnections: 最大連接配接數,預設65536,不能超過系統設定,# ulimit -n 3. 使用mongoDB 下面列出一些使用mongoDB的常用指令,其他還有很多,詳細參照官方文檔 3.1 連接配接mongoDB
           

$ mongo

3.2 檢視資料庫
           

$ show dbs

3.2 切換資料庫,沒有的時候建立
           

$ use new2

檢視collection
> show collections
> show tables
 檢視目前資料庫狀态
> db.stats()
 插入資料
> db.user.insert({"username":"test1","age":,"sex":"m"})
 查找資料
查找集合中所有資料
> db.user.find()
指定條件查找資料
> db.user.find({age: {$gt: }});
> db.user.find({sex: /m/});
 統計資料
> db.user.count()
指定條件統計資料
> db.user.count({sex: "m"});
 删除記錄
> db.user.remove({age: });
 删除collection
> db.user.drop()
 複制資料庫
> db.copyDatabase("new2", "new3", "127.0.0.1");
 删除目前資料庫
> db.dropDatabase();
 釋放空間
> db.repairDatabase()
 停止mongodb
> use admin
> db.shutdownServer()
 幫助檔案
> help
> db.help()
 mongoDB狀态頁面
 打開自帶的狀态頁
# vi /etc/mongod.conf
net:
port: 
http:
enabled: true
 浏覽器通路
http://IP:/
 後記
本文隻是初步學習一下mongoDB的安裝和使用,副本集,分片等功能,接下來會進行介紹。