Mongodb日常运维操作命令
Posted 93bok
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb日常运维操作命令相关的知识,希望对你有一定的参考价值。
本文源链接地址: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:"[email protected]",roles:["readWrite","dbAdmin"]})
Successfully added user: { "user" : "nongkaige", "roles" : [ "readWrite", "dbAdmin" ] }
3、数据库认证、安全模式
> db.auth("nongkaige","[email protected]")
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日常运维操作命令的主要内容,如果未能解决你的问题,请参考以下文章