溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

大數(shù)據(jù)必備的數(shù)據(jù)庫 MongoDB 3.6 安裝、單機多實例

發(fā)布時間:2020-06-21 04:49:45 來源:網(wǎng)絡(luò) 閱讀:1065 作者:HHHNDYD 欄目:MongoDB數(shù)據(jù)庫

MongDB 簡介

MongoDB 是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
MongoDB 是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

MongoDB 特點

  • 高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。
  • 面向集合存儲,易存儲對象類型的數(shù)據(jù)。

  • 模式自由。

  • 支持動態(tài)查詢。

  • 支持完全索引,包含內(nèi)部對象。

  • 支持查詢。

  • 支持復(fù)制和故障恢復(fù)。

  • 使用高效的二進制數(shù)據(jù)存儲,包括大型對象(如視頻等)。

  • 自動處理碎片,以支持云計算層次的擴展性。

  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言。

  • 文件存儲格式為BSON(一種JSON的擴展)。

  • 可通過網(wǎng)絡(luò)訪問。

    本案環(huán)境 :

    操作系統(tǒng) : CentOS 7.3 x86_64

    安裝MongoDB :

    1.配置YUM源倉庫 :
vim /etc/yum.repos.d/mongodb-org.repo

[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.as
2.安裝 MongoDB :
yum  install -y mongodb-org
systemctl start mongod.service     #開啟服務(wù)
systemctl start mongod.service     #開啟服務(wù)
[root@localhost ~]# mongo          #進入數(shù)據(jù)庫
MongoDB shell version v3.6.6
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.6

配置 MongoDB 單機多實例

1. 復(fù)制 MongoDB 配置文件 :
cp -p /etc/mongod.conf /etc/mongod2.conf
vim /etc/mongodb2.conf
systemLog:
  destination: file
  logAppend: true
  path: /data/logs/mongod2.log      #日志文件位置
.....
storage:
  dbPath: /data/mongodb/mongodb2    #數(shù)據(jù)文件位置
  journal:
......
net:
  port: 27018                      #修改端口號
  bindIp: 127.0.0.1 
mkdir -p /data/mongodb/mongodb2   #創(chuàng)建數(shù)據(jù)文件位置

mkdir -p /data/logs/              #創(chuàng)建日志文件位置

touch /data/logs/mongodb2.log     #創(chuàng)建日志文件

chmod -R 777 /data/logs/mongodb2.log  #添加日志文件的權(quán)限
[root@localhost ~]# mongod -f /etc/mongod2.conf     #開啟實例
about to fork child process, waiting until server is ready for connections.
forked process: 23824
child process started successfully, parent exiting
[root@localhost ~]# mongo --port 27018    #進入實例
MongoDB shell version v3.6.6
connecting to: mongodb://127.0.0.1:27018/
MongoDB server version: 3.6.6
[root@localhost ~]# mongod -f /etc/mongod2.conf --shutdown   #關(guān)閉實例
killing process with pid: 23824

MongoDB 基本操作

操作 描述
show dbs 查看當(dāng)前實例下的數(shù)據(jù)庫列表
show users 顯示用戶
use <db_name> 切換當(dāng)前數(shù)據(jù)庫
db.help() 顯示數(shù)據(jù)庫操作命令
show collections 顯示當(dāng)前數(shù)據(jù)庫集合
db.foo.help() 顯示集合操作命令,foo 是當(dāng)前數(shù)據(jù)庫下的集合
db.foo.find() 對當(dāng)前數(shù)據(jù)庫中foo集合進行數(shù)據(jù)查找
  • 創(chuàng)建和刪除數(shù)據(jù)庫
格式 : use DATABASE_NAME #切換數(shù)據(jù)庫如果有切換,沒有創(chuàng)建
mongos> use abc
switched to db abc
格式 : db.dropDatabase() #刪除數(shù)據(jù)庫
mongos> use abc
switched to db abc
mongos> db.dropDatabase()
{ "info" : "database does not exist", "ok" : 1 }
  • 插入數(shù)據(jù)、刪除數(shù)據(jù)和修改數(shù)據(jù)
mongos> db.test.insert({"id":1,"name":"zhangsan"})     #在test集合插入數(shù)據(jù)  沒有test集合默認會自動創(chuàng)建
WriteResult({ "nInserted" : 1 })
mongos> db.test.insert({"id":2,"name":"lisi"})
WriteResult({ "nInserted" : 1 })
mongos> db.test.find()                             #查看集合內(nèi)容
{ "_id" : ObjectId("5b4eb95659122739e2695613"), "id" : 1, "name" : "zhangsan" }
{ "_id" : ObjectId("5b4eb96759122739e2695614"), "id" : 2, "name" : "lisi" }
mongos> db.test.remove({"id":1})        #刪除test集合中的id為1的數(shù)據(jù)
WriteResult({ "nRemoved" : 1 })
mongos> db.test.find()
{ "_id" : ObjectId("5b4eb96759122739e2695614"), "id" : 2, "name" : "lisi" }
mongos> db.test.update({"id":2},{$set:{"name":"wangwu"}})    #修改數(shù)據(jù)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
mongos> db.test.find()
{ "_id" : ObjectId("5b4eb96759122739e2695614"), "id" : 2, "name" : "wangwu" }
  • 數(shù)據(jù)的導(dǎo)入導(dǎo)出
[root@localhost bin]# ./mongoexport -d abc -c test -o /opt/test.json  #導(dǎo)出文件格式為json
2018-07-18T12:07:50.297+0800    connected to: localhost
2018-07-18T12:07:50.299+0800    exported 2 records 
[root@localhost bin]# ./mongoimport -d abc -c test --file test.json    #導(dǎo)入數(shù)據(jù)庫
2018-07-18T12:09:09.880+0800    Failed: open test.json: no such file or directory
2018-07-18T12:09:09.881+0800    imported 0 documents
參數(shù)說明
  • -d :指明數(shù)據(jù)庫的名字
  • -c :指明集合的名字
  • -o :指明要導(dǎo)出的文件名
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI