mongodb基礎(chǔ)環(huán)境搭建

安裝(yum方式)

新建/etc/yum.repos.d/mongodb-org-3.4.repo

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

執(zhí)行yum install mongodb-org

默認(rèn)路徑

/var/lib/mongo #數(shù)據(jù)存儲位置
/var/log/mongodb #日志文件
/etc/mongod.conf #配置文件
默認(rèn)mongod.conf里
bindIp: 127.0.0.1只能本機(jī)訪問,如果希望其他設(shè)備也能訪問需要修改為其他ip。port: 27017也可以改成其他端口。端口設(shè)置小于1024時,需要root權(quán)限啟動(linux特性)。

啟動服務(wù)

systemctl start mongod #啟動服務(wù)
systemctl enable mongod #設(shè)定重啟后服務(wù)能自啟
相關(guān)的啟動日志/var/log/mongodb/mongod.log

配置

第一次連接

mongo --host 10.10.10.10 --port 27017
show dbs #查看當(dāng)前的database
admin  0.000GB #管理員數(shù)據(jù)庫
local  0.000GB

配置管理員用戶名和密碼

mongodb默認(rèn)沒有用戶名和密碼很危險,應(yīng)該盡快配置。
用戶分為2種:管理員,數(shù)據(jù)庫用戶
管理員只能在admin數(shù)據(jù)庫中設(shè)置。

use admin
switched to db admin
> db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]})
Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }

設(shè)置了一個用戶名為root,密碼為root123的管理員帳號。

> db.auth("root","root123")
1

使用root帳號進(jìn)行登錄,如果成功則返回1

> show collections
system.users
system.version

在admin數(shù)據(jù)庫里show collections(collections相當(dāng)于表)可以看到system.users這個是用來保存用戶權(quán)限的。

創(chuàng)建新數(shù)據(jù)庫和相應(yīng)的用戶

> use TestDB
switched to db TestDB
> db
TestDB

如果TestDB不存在則新創(chuàng)建此數(shù)據(jù)庫,如果存在則切換到此數(shù)據(jù)庫。db命令查看當(dāng)前所用的數(shù)據(jù)庫。

> show dbs
admin  0.000GB
local  0.000GB

show dbs發(fā)現(xiàn)新建的TestDB沒有顯示出來。要顯示的數(shù)據(jù)庫,至少需要有一行數(shù)據(jù)。

> db.name.insert({"name":"tester"})
WriteResult({ "nInserted" : 1 })
> show dbs
TestDB  0.000GB
admin   0.000GB
local   0.000GB

為數(shù)據(jù)庫TestDB添加用戶

> db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]})
Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] }

驗證登錄一下

> db.auth("testuser","testpass")
1

使安全配置生效

編輯/etc/mongod.conf文件
在#security:行下添加

security:
  authorization: enabled

之后systemctl restart mongod #重啟服務(wù)
如果不是yum安裝,是下載tar包安裝的話,直接在運(yùn)行參數(shù)后面添加 --auth就可以了。
比如這樣

nohup mongod --dbpath /root/data --auth &

連接測試權(quán)限

mongo 10.10.10.10:27017/TestDB -u testuser -p testpass
MongoDB shell version v3.4.4
connecting to: mongodb://10.10.10.10:27017/TestDB
MongoDB server version: 3.4.4
> db
TestDB

圖形化管理robomongo

robomongo是個圖形化的mongodb的管理工具,支持:windows,MAC,Linux
https://robomongo.org/download

使用python的pymongo庫進(jìn)行連接

pip install pymongo安裝后(conda里也有此包)
在代碼中

from pymongo import MongoClient

client = MongoClient('10.10.10.10:27017')
db = client['TestDB'] #TestDB是數(shù)據(jù)庫名
db.authenticate('testuser', 'testpass') #用戶名和密碼
testCollection = db['testColl'] #testColl是要連接的collection名
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容