前面已经介绍了一些常用的命令(Mongodb基本知识和常用语法):
到最后的学习阶段就是要记录一下Mongodb日常管理会用到的语句,以备不时之需
正常模式启动Mongodb:
在mongodb的启动bin目录输入以下代码:
./mongod 有端口的带端口 不用默认数据目录的话可以自己设置 ./mongod --port 18010 --dbpath /data/db
注意 设置路径的话 要保证已经有该目录了 如果没有的话 要先用 mkdir -p 新建
例子 :
mkdir -p /data/db/data mkdir -p /data/db/log
小技巧:
启动成功
正确停止MongoDB:
1.在mongodb的启动bin目录输入以下代码:
进入想关闭的服务器shell环境:
./mongo --port 18010 use admin db.shutdownServer();
2.直接在服务器的控制台 ctrl+c
安全认证(增加帐号密码认证):
用认证方式启动mongodb:
./mongod --auth用--auth 认证方式启动的数据库必须有帐号密码才能访问到数据。
admin数据库下面添加的用户 被视为超级用户(管理员)。
其他数据库下面添加的用户,视为普通用户
添加:
db.addUser(username, password) 或者 db.addUser(username, password, readOnly=false)
认证用户(检查用户密码是否可用)
> use admin switched to db admin > db.auth("admin","admin123"); 1
使用用户名 密码登录
>mongo --port 20000 admin -u admin -p
查询用户
db.system.users.find()
删除用户:
db.system.users.remove({user:"admin"});
限制ip访问:
使用--bindip 参数, 只能被--bindip参数指定的ip地址访问.
如:
mongod --bindip localhost
数据导入导出:
导出为.dat格式:将my_mongodb 数据库中的user集合导出到 user.dat
./mongoexport -d my_mongodb -c user -o user.dat
导出为.csv格式:将my_mongodb 数据库中的user集合导出到user_csv.dat
./mongoexport -d my_mongodb -c user --csv -f uid,username,age -o user_csv.dat参数说明:
-csv 指要要导出为csv 格式
-f 指明需要导出哪些例
导入user.dat到my_mongodb数据库
./mongoimport -d my_mongodb -c user user.dat导入user_csv.dat到my_mongdb数据库
./mongoimport -d my_mongodb -c user --type csv --headerline --file user_csv.dat
参数说明:
-type 指明要导入的文件格式
-headerline 批明不导入第一行,因为第一行是列名
-file 指明要导入的文件路径
注意:
CSV 格式良好,主流数据库都支持导出为CSV 的格式,所以这种格式非常利于异构数据迁移
Mongodb自带了mongodump和mongorestore这两个工具来实现对数据的备份和恢复。
mongodump能够在Mongodb运行时进行备份
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-o:指明到要导出的文件名
-q:指明导出数据的过滤条件
用法:
mongodump -d test -o data/backup把test数据库备份到 data/backup路径下,备份成bson文件
mongorestore是Mongodb从备份中恢复数据的工具,它主要用来获取mongodump的输出结果,并将备份的数据插入到运行的Mongodb中。
参数说明:
-h:指明数据库宿主机的IP
-u:指明数据库的用户名
-p:指明数据库的密码
-d:指明数据库的名字
-c:指明collection的名字
-o:指明到要备份的文件名
-q:指明备份数据的过滤条件
mongorestore命令使用方法如下:
mongorestore -d test data/backup/test/将data/backup/test/路径下的bson文件还原到数据库test中
修复
MongoDB的存储方式不能保证磁盘上的数据还能用,因为可能有损毁.MongoDB内置的修复功能会试着恢复损坏的数据文件.未正常停止MongoDB后应该修复数据库.修复数据库的方式很简单就是下面方法来启动服务器.mongod --repair
修复运行中的服务器上的数据库,要在shell用repairDatabases.
use test db.repairDatabase()
监控:
serverStatus命令
use admin db.serverStatus();