mongodb复杂命令行

mongodb{

一、启动{

# 不启动认证

./mongod --port 27017 --fork --logpath=/opt/mongodb/mongodb.log --logappend --dbpath=/opt/mongodb/data/

# 启动认证

./mongod --port 27017 --fork --logpath=/opt/mongodb/mongodb.log --logappend --dbpath=/opt/mongodb/data/ --auth

# 配置文件方式启动

cat /opt/mongodb/mongodb.conf

port=27017                       # 端口号

fork=true                        # 以守护进程的方式运行,创建服务器进程

auth=true                        # 开启用户认证

logappend=true                   # 日志采用追加方式

logpath=/opt/mongodb/mongodb.log # 日志输出文件路径

dbpath=/opt/mongodb/data/        # 数据库路径

shardsvr=true                    # 设置是否分片

maxConns=600                     # 数据库的最大连接数

./mongod -f /opt/mongodb/mongodb.conf

# 其他参数

bind_ip         # 绑定IP  使用mongo登录需要指定对应IP

journal         # 开启日志功能,降低单机故障的恢复时间,取代dur参数

syncdelay       # 系统同步刷新磁盘的时间,默认60秒

directoryperdb  # 每个db单独存放目录,建议设置.与mysql独立表空间类似

repairpath      # 执行repair时的临时目录.如果没开启journal,出现异常重启,必须执行repair操作

# mongodb没有参数设置内存大小.使用os mmap机制缓存数据文件,在数据量不超过内存的情况下,效率非常高.数据量超过系统可用内存会影响写入性能

}

二、关闭{

# 方法一:登录mongodb

./mongo

use admin

db.shutdownServer()

# 方法:kill传递信号  两种皆可

kill -2 pid

kill -15 pid

}

三、开启认证与用户管理{

./mongo                      # 先登录

use admin                    # 切换到admin库

db.addUser("root","123456")                     # 创建用户

db.addUser(‘zhansan‘,‘pass‘,true)               # 如果用户的readOnly为true那么这个用户只能读取数据,添加一个readOnly用户zhansan

./mongo 127.0.0.1:27017/mydb -uroot -p123456    # 再次登录,只能针对用户所在库登录

#虽然是超级管理员,但是admin不能直接登录其他数据库,否则报错

#Fri Nov 22 15:03:21.886 Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" } at src/mongo/shell/db.js:228

show collections                                # 查看链接状态 再次登录使用如下命令,显示错误未经授权

db.system.users.find();                         # 查看创建用户信息

db.system.users.remove({user:"zhansan"})        # 删除用户

#恢复密码只需要重启mongodb 不加--auth参数

}

四、登录{

192.168.1.5:28017      # http登录后可查看状态

./mongo                # 默认登录后打开 test 库

./mongo 192.168.1.5:27017/databaseName      # 直接连接某个库 不存在则创建  启动认证需要指定对应库才可登录

}

五、查看状态{

#登录后执行命令查看状态

db.runCommand({"serverStatus":1})

globalLock         # 表示全局写入锁占用了服务器多少时间(微秒)

mem                # 包含服务器内存映射了多少数据,服务器进程的虚拟内存和常驻内存的占用情况(MB)

indexCounters      # 表示B树在磁盘检索(misses)和内存检索(hits)的次数.如果这两个比值开始上升,就要考虑添加内存了

backgroudFlushing  # 表示后台做了多少次fsync以及用了多少时间

opcounters         # 包含每种主要擦撞的次数

asserts            # 统计了断言的次数

#状态信息从服务器启动开始计算,如果过大就会复位,发送复位,所有计数都会复位,asserts中的roolovers值增加

#mongodb自带的命令

./mongostat

insert     #每秒插入量

query      #每秒查询量

update     #每秒更新量

delete     #每秒删除量

locked     #锁定量

qr|qw      #客户端查询排队长度(读|写)

ar|aw      #活跃客户端量(读|写)

conn       #连接数

time       #当前时间

}

六、常用命令{

db.listCommands()     # 当前MongoDB支持的所有命令(同样可通过运行命令db.runCommand({"listCommands" : `1})来查询所有命令)

db.runCommand({"buildInfo" : 1})                # 返回MongoDB服务器的版本号和服务器OS的相关信息。

db.runCommand({"collStats" : 集合名})           # 返回该集合的统计信息,包括数据大小,已分配存储空间大小,索引的大小等。

db.runCommand({"distinct" : 集合名, "key" : 键, "query" : 查询文档})     # 返回特定文档所有符合查询文档指定条件的文档的指定键的所有不同的值。

db.runCommand({"dropDatabase" : 1})             # 清空当前数据库的信息,包括删除所有的集合和索引。

db.runCommand({"isMaster" : 1})                 # 检查本服务器是主服务器还是从服务器。

db.runCommand({"ping" : 1})                     # 检查服务器链接是否正常。即便服务器上锁,该命令也会立即返回。

db.runCommand({"repaireDatabase" : 1})          # 对当前数据库进行修复并压缩,如果数据库特别大,这个命令会非常耗时。

db.runCommand({"serverStatus" : 1})             # 查看这台服务器的管理统计信息。

# 某些命令必须在admin数据库下运行,如下两个命令:

db.runCommand({"renameCollection" : 集合名, "to":集合名})     # 对集合重命名,注意两个集合名都要是完整的集合命名空间,如foo.bar, 表示数据库foo下的集合bar。

db.runCommand({"listDatabases" : 1})                           # 列出服务器上所有的数据库

}

七、进程控制{

db.currentOp()                  # 查看活动进程

db.$cmd.sys.inprog.findOne()    # 查看活动进程 与上面一样

opid   # 操作进程号

op     # 操作类型(查询\更新)

ns     # 命名空间,指操作的是哪个对象

query  # 如果操作类型是查询,这里将显示具体的查询内容

lockType  # 锁的类型,指明是读锁还是写锁

db.killOp(opid值)                         # 结束进程

db.$cmd.sys.killop.findOne({op:opid值})   # 结束进程

}

八、备份还原{

./mongoexport -d test -c t1 -o t1.dat                 # 导出JSON格式

-c         # 指明导出集合

-d         # 使用库

./mongoexport -d test -c t1 -csv -f num -o t1.dat     # 导出csv格式

-csv       # 指明导出csv格式

-f         # 指明需要导出那些例

db.t1.drop()                    # 登录后删除数据

./mongoimport -d test -c t1 -file t1.dat                           # mongoimport还原JSON格式

./mongoimport -d test -c t1 -type csv --headerline -file t1.dat    # mongoimport还原csv格式数据

--headerline                # 指明不导入第一行 因为第一行是列名

./mongodump -d test -o /bak/mongodump                # mongodump数据备份

./mongorestore -d test --drop /bak/mongodump/*       # mongorestore恢复

--drop      #恢复前先删除

db.t1.find()    #查看

# mongodump 虽然能不停机备份,但市区了获取实时数据视图的能力,使用fsync命令能在运行时复制数据目录并且不会损坏数据

# fsync会强制服务器将所有缓冲区的数据写入磁盘.配合lock还阻止对数据库的进一步写入,知道释放锁为止

# 备份在从库上备份,不耽误读写还能保证实时快照备份

db.runCommand({"fsync":1,"lock":1})   # 执行强制更新与写入锁

db.$cmd.sys.unlock.findOne()          # 解锁

db.currentOp()                        # 查看解锁是否正常

}

九、修复{

# 当停电或其他故障引起不正常关闭时,会造成部分数据损坏丢失

./mongod --repair      # 修复操作:启动时候加上 --repair

# 修复过程:将所有文档导出,然后马上导入,忽略无效文档.完成后重建索引。时间较长,会丢弃损坏文档

# 修复数据还能起到压缩数据库的作用

db.repairDatabase()    # 运行中的mongodb可使用 repairDatabase 修复当前使用的数据库

{"repairDatabase":1}   # 通过驱动程序

}

时间: 2024-10-24 19:27:31

mongodb复杂命令行的相关文章

MongoDB 基础命令行

本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 登录和退出 mongo命令直接加MongoDB服务器的IP地址(比如:mongo 10.77.20.xx),就可以利用Mongo的默认端口号(27017)登陆Mongo,然后便能够进行简单的命令行操作. 至于退出,直接exit,然后回车就好了. [plain] $ mongo 10.77.20.xx MongoDB shell

MongoDB使用命令行配置的问题

在用命令行配置mongodb的时候遇到一些问题,自己脑子也是有点发昏 一开始以为是自己环境配置错或命令敲错了 后来才发现,配置路径不支持相对的路径,必须写全比如D:\mongodb\db\ huo ./mongodb/db/ 希望以后不要再犯同样的错误了,开发者也应该多考虑一下安装时这些小细节 像这种小问题,最好给个比较明确的提示

2、链接数据库+mongodb基础命令行+小demo

链接数据库并且打印出数据的流程:1.在CMD里面输入 mongod 2.在CMD里面输入 mongo 3.在输入mongodb命令行里面进行操作,首先输入 show dbs 来查看是否能够链接得上库4.定义db var db = connect('log'); //链接数据库 链接的是哪一个数据库?5.插入数据:db.login.insert(jsonData); //插入数据 5.命令行一:基础命令行(1).查看存在数据库命令 : show dbs (2).查看数据库版本命令 : db.ver

[MongoDB]mongo命令行工具

1.use dbname 自动创建 2.db.user.find() 空 show collections 空 show dbs 3.db.user.save({name:'',age:20}) db.user.find() db.user.find({'name':''}) db.user.save({'_id':xx,'name'}) db.user.update({},{}) db.user.update({},{$set:{'key','value'}}) db.user.remove(

mongodb命令行的使用-让你的数据存储更高效

mongodb简介 mongodb 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.特点:高性能.易部署.易使用,存储数据非常方便.本文将介绍mongodb的命令行的使用方法,让mongodb的操作更加高效. mongodb特点:高性能.易部署.易使用,存储数据非常方便. 功能特性: 面向集合存储,易存储对象类型的数据 模式自由 支持动态查询 支持完全索引,包含内部对象 支持查询 支持复制和故障恢复 使用高效的二进制数据存储,包括大型对

Mongodb的备份,恢复,导入与导出(cmd命令行实现)

要用MongoDB,自然就要用到数据导入导出,就自己学习了一下. 在Mongo学习(二)中就讲到了在bin目录下有一些工具,本篇就是使用这些工具进行数据的导入导出及备份恢复. 注意:以下命令均在cmd命令行中输入,导出及备份未指明目录情况下,均保存在当前操作目录下. 数据导出mongoexport 1.常用导出方法:导出数据为json 假设库里有一张area 表,里面有9 条记录,我们要将它导出 >c:\mongo\bin\mongoexport -d iflashbuy_log -c area

MongoDB命令行操作

1. 连接MongoDB: Mongodb://username:[email protected]/dbname 2. 创建数据库: use dbname:如果数据库不存在则创建数据库,否则切换到指定数据库. 3. 查看所有数据库: show dbs 注: 该命令不会显示新创建的空数据库,若想显示需要向空数据库插入一些数据. MongoDB中默认的数据库为test,若果没有创建新的数据库,集合将存放于test中. 4. 查看当前数据库名: db 5. 删除数据库: db.dropDatabas

mongodb数据库操作 python+命令行

一.python操作 from bson.objectid import ObjectId import pymongo client1 = pymongo.MongoClient(host='localhost', port=27017) from pymongo import MongoClient client2 = MongoClient('mongodb://localhost:27017/') ''' 两种方式都行 ''' ''' 指定数据库 ''' db = client1.tes

MongoDB常用命令

成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 1.输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户 use <db name>:切换当前数据库,这和MS-SQL里面的意思一样 db.help():显示数据库操作命令,里面有很多的命令 db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据