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日常运维操作命令的主要内容,如果未能解决你的问题,请参考以下文章

Ceph运维ceph 日常运维

Linux运维命令Curl - 日常用法总结

运维人员db2的日常操作命令

Redis日常运维-常用命令汇总

MongoDB之基本操作与日常维护

vim运维日常必备操作技巧(常用的全有)