mongo的基本操作-備忘錄

mongodb啓動

1.以配置文件啓動

./bin/mongod --config mongodb.conf 

2.手動指定相關地址路徑啓動

/usr/mongodb/bin/mongod --dbpath=/usr/mongodb/db --logpath=/usr/mongodb/logs --logappend  --auth  --port=27017 --fork

mongodb關閉

use admin
db.runCommand("shutdown")
|or|
db.shutdownServer()

配置文件介紹

# this is mongo.conf
port=27017 #端口
dbpath= /usr/mongodb/db #數據庫存文件存放目錄
logpath= /usr/mongodb/log/mongodb.log #日誌文件存放路徑
logappend=true #使用追加的方式寫日誌
fork=true #以守護進程的方式運行,創建服務器進程
maxConns=100 #最大同時連接數
#noauth=true #不啓用驗證
journal=true #每次寫入會記錄一條操作日誌(通過journal可以重新構造出寫入的數據)。
#即使宕機,啓動時wiredtiger會先將數據恢復到最近一次的checkpoint點,然後重放後續的journal日誌來恢復。
storageEngine=wiredTiger  #存儲引擎有mmapv1、wiretiger、mongorocks
bind_ip = 0.0.0.0  #這樣就可外部訪問了,例如從win10中去連虛擬機中的MongoDB
auth = true

設置賬號密碼

MongoDB 默認安裝完成以後,只允許本地連接,同時不需要使用任何賬號密碼就可以直接連接MongoDB,這樣是很不安全的,所以我們要設個密碼

服務器端開啓服務,非auth驗證方式

mongod  --bind_ip_all
客戶端連接

mongo [yourIP]:27017 
use admin
創建管理員賬戶
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

mongodb中的用戶是基於身份role的,該管理員賬戶的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用戶管理身份,’AnyDatabase’ 代表可以管理任何數據庫

創建普通用戶(爲了安全,應該每個數據庫或者每個業務都創建自己的賬戶,這樣即使一個業務密碼被別人知道了,不會影響到其他的數據庫)

use yourdatabase
db.createUser({ user: "youruser", pwd: "yourpassword", roles: [{ role: "dbOwner", db: "yourdatabase" }] })

服務器上賬戶創建完成後,ctrl C 掉,重新用密碼驗證方式開啓服務

服務器端重啓服務,auth驗證方式

mongod --auth --bind_ip_all //加了--auth 表示需要驗證用戶名密碼

客戶端連接

mongo [yourIP]:27017 
use admin // 需要先選擇admin數據庫纔可以作驗證
db.auth('useradmin','adminpassword') // 返回1就表示驗證成功,獲得所有權限了
ps:上面的方式太麻煩,其實客戶端用戶名密碼連接還有類似mysql的連接方式

mongo localhost:27017/admin -u useradmin -p //如果是普通用戶的話,admin 改爲你的數據庫
--fork 參數表示後臺啓動

mongod --fork --logpath /var/log/mongodb/mongod.log
後臺啓動這種方式啓動後只能這樣關閉

mongod --shutdown
修改密碼
非驗證方式打開 mongod 服務
mongod 
mongo
use admin
db.changeUserPassword('user','newpassword'); // 必須用戶名存在
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章