Mongodb日常運維操作命令
阿新 • • 發佈:2018-09-20
恢復數據 數據導出 導入 comm .org mman against 列名 dba
本文源鏈接地址:https:www.93bok.com
一、啟動和終止
1、正常啟動
systemctl start mongodb
2、以修復模式啟動
mongod -f /etc/mongodb/mongodb.conf
3、停止修復模式
> use admin
> db.shutdownServer()
4、關閉mongodb服務
systemctl stop mongodb
二、登錄和退出
1、登錄
mongo 命令直接加MongoDB服務器的IP地址就可以利用 Mongo 的默認端口號(27017)登陸 Mongo,然後便能夠進行簡單的命令行操作
如果默認bind綁定的ip是127.0.0.1以及端口號是27017,那麽登錄可以直接用下面兩種方式都可以:
1)mongo
2)mongo 127.0.0.1:27017
如果綁定了固定的ip地址,如bing_ip=192.168.10.100,那麽連接mongodb命令為:
mongo 192.168.10.100:27017
如果是連接某個庫,命令是:
mongo ip:port/庫名 -u用戶名 -p密碼
2、退出
直接輸入exit,然後回車就好了
三、安全管理
1、以安全認證模式啟動
mongod --auth -f /etc/mongodb/mongodb.conf
或者也可以修改配置文件,設置auth=true,重啟mongodb進程即可
2、添加用戶
> db.createUser({user:"nongkaige",pwd:"123!@",roles:["readWrite","dbAdmin"]}) Successfully added user: { "user" : "nongkaige", "roles" : [ "readWrite", "dbAdmin" ] }
3、數據庫認證、安全模式
> db.auth("nongkaige","123!@")
1
4、顯示當前所有用戶
> show users { "_id" : "nongkaige.nongkaige", "user" : "nongkaige", "db" : "nongkaige", "roles" : [ { "role" : "readWrite", "db" : "nongkaige" }, { "role" : "dbAdmin", "db" : "nongkaige" } ] }
5、刪除用戶
> db.dropUser("nongkaige")
true
6、為數據庫寫數據加鎖
說明:改操作已經對數據庫上鎖,不允許執行寫數據操作,一般在執行數據庫備份時有用
> db.fsyncLock()
{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : NumberLong(1),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}
7、查看當前鎖狀態
> db.currentOp()
"fsyncLock" : true,
"info" : "use db.fsyncUnlock() to terminate the fsync write/snapshot lock",
"ok" : 1
8、解鎖
> db.fsyncUnlock()
{ "info" : "fsyncUnlock completed", "lockCount" : NumberLong(0), "ok" : 1 }
四、數據備份、恢復、導入、導出
1、備份全部數據庫
mkdir testbak
cd testbak/
mongodump
2018-03-27T16:41:07.876+0800 writing admin.system.users to
2018-03-27T16:41:07.877+0800 done dumping admin.system.users (3 documents)
2018-03-27T16:41:07.877+0800 writing admin.system.version to
2018-03-27T16:41:07.878+0800 done dumping admin.system.version (2 documents)
說明:默認備份目錄及數據文件格式為./dump/[databasename]/[collectionname].bson
2、備份指定數據庫
mongodump -d admin
說明:備份數據庫admin中的數據
3、備份一個數據庫中的某個集合
mongodump -d admin -c system.users
說明:備份數據庫admin中的system.users集合
4、恢復全部數據庫
cd testbak/
mongorestore --drop
2018-03-27T17:18:20.949+0800 using default ‘dump‘ directory
2018-03-27T17:18:20.950+0800 preparing collections to restore from
2018-03-27T17:18:20.953+0800 restoring users from dump/admin/system.users.bson
2018-03-27T17:18:20.971+0800 done
說明:將備份的所有數據庫恢復到數據庫,--drop指定恢復數據之前,刪除原來數據庫的數據,否則會造成恢復後的數據重復
5、恢復某個數據庫的數據
cd testbak/
mongorestore -d admin --drop
6、恢復某個數據庫中的某個集合
cd testbak/
mongorestore -d admin -c system.users --drop
7、向mongodb導入數據
mongoimport -d admin -c system.users --type csv --headerline --drop < csvORtsvFile.csv
說明:將文件csvORtsvFile.csv的數據導入到admin數據庫的system.users集合中,使用csv或tsv文件的列名作為集合的列名
需要註意的是,使用--headerline選項時,只支持csv和tsv文件。--type支持的類型有三個:csv、tsv、json
8、從mongodb導出數據
mongoexport -d admin -c system.users -q {} -f _id,title,url,spiderName,pubDate --csv > test.csv
說明:將admin數據庫中system.users集合的數據導出到test.csv文件,其中個選項含義:
-f指定csv列名為_id,title,url,spiderName,pubDate
-q指定查詢條件
五、基本日常操作命令
1、查看服務器上的數據庫
> show dbs
2、切換數據庫(如果沒有這個數據庫,自動創建)
> use config
3、查看數據庫中的所有集合
> show collections
4、查看當前所在數據庫
> db
5、創建數據庫
mongo 中創建數據庫采用的也是 use 命令,如果 use 後面跟的數據庫名不存在,那麽mongo將會新建該數據庫。不過,實際上只執行 use 命令後,mongo 是不會新建該數據庫的,直到你向該數據庫中插入了數據。
> use nongkaige
switched to db nongkaige
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
到這裏並沒有看到創建nongkaige數據庫
> db.nongkaige.insert({"name":"testdb"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
nongkaige 0.000GB
這樣,就可以看到mongo創建了nongkaige數據庫
6、刪除數據庫(默認刪除當前所在庫,如果要刪除指定庫,使用use切換目錄再刪除)
> db.dropDatabase()
{ "dropped" : "nongkaige", "ok" : 1 }
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
7、刪除集合
> use nongkaige
switched to db nongkaige
> show collections
nongkaige
> db.nongkaige.drop()
true
> show collections
>
8、查看當前mongodb版本
> db.version()
3.6.3
9、查看當前數據庫的連接機器地址
> db.getMongo()
connection to 127.0.0.1:27017
10、從指定機器上克隆數據庫
> db.cloneDatabase("192.168.10.110")
11、從指定機器上復制指定數據庫的數據到某個數據庫中
> db.copyDatabase("master_slave","nongkaige","127.0.0.1")
{ "ok" : 1 }
Mongodb日常運維操作命令