启动
-
使用配置文件
mongod -f /etc/mongod.conf
参数配置
使用参数
mongod --dbpath=./data
非正常退出程序后 启动报错
sudo mongod -repair
关闭进程
mongo
use admin
db.shutdownServer()
如果权限允许的话就执行成功了
权限
- 角色
https://docs.mongodb.com/manual/core/authentication-mechanisms/
> db.getUser('root')
{
"_id" : "admin.root",
"user" : "root",
"db" : "admin",
"roles" : [
{
"role" : "hostManager", // 执行 shutdownServer
"db" : "admin"
},
{
"role" : "dbAdminAnyDatabase", // 添加其他权限的权限
"db" : "admin"
}
]
}
- 权限
链接地址
const url = `mongodb://${config.mongodb.user}:${config.mongodb.pwd}@${config.mongodb.ip}:${config.mongodb.port}/${config.mongodb.dbName}`;
允许远程连接
sudo netstat -nputl
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1109/mongod
看了一下MongoDB 的服务监听的地址,因此你使用192.168.1.4,是链接不上的,会被拒绝,这个一个元应
mongod文件添加如下行,已存在请修改
bind_ip = 0.0.0.0
另外如果是redhat,centos 系列的,打开防火墙端口
iptables -A INPUT -p tcp -m tcp --dport 27017 -j ACCEPT
暂时关闭selinux
setenforce 0
mongodb shell 脚本
mongo shell 是mongoDB JavaScript 接口。
当启动mongod
的时候,他会自动到用户目录下寻找一个被命名为.mongorc.js
的js文件, 如果找到了,mongo将会第一时间执行这个文件的内容在提示启动之前,如果你使用 shell
参数指定了一个js文件或者表达式如--eval
。mongo
将会先执行你指定的文件后执行.mongorc.js
文件,可以使用--norc
参数不执行.mongorc.js
文件。
备份与数据恢复
使用MongoDB提供的两个工具来实现备份和恢复。这个两个工具在MongoDB的bin目录下可以看到:mongodump/mongorestor
mongodump备份的原理是通过一次查询获取当前服务器快照,并将快照写入磁盘中,因此这种方式保存的也不是实时的,因为在获取快照后,服务器还会有数据写入,为了保证备份的安全,同样我们还是可以利用fsync锁使服务器数据暂时写入缓存中。
mongodump -d test -o backup //( backup是备份目录,默认创建到bin目录)
mongorestore -d test --drop backup/test/ //提一点的就是 drop选项,这里是说我将test数据恢复之前先删除原有数据库里面的数据
mongodump:
命令格式:mongodump -h dbhost -d dbname -o dbdirectory
-h: mongodb所在服务器地址,例如127.0.0.1,也可以指定端口:127.0.0.1:8080
-d: 需要备份的数据库名称,例如:test_data
-o: 备份的数据存放的位置,例如:/home/bak
-u: 用户名称,使用权限验证的mongodb服务,需要指明导出账号
-p:用户密码,使用权限验证的mongodb服务,需要指明导出账号密码
mongorestore:
命令格式:mongorestore -h dbhost -d dbname -dorectoryperdb dbdireactory
-h: mongodb所在服务器地址
-d: 需要恢复备份的数据库名称,例如:test_data,可以跟原来备份的数据库名称不一样
-directoryperdb: 备份数据所在位置,例如:/home/bak/test
-drop: 加上这个参数的时候,会在恢复数据之前删除当前数据;
sudo mongodump -u root -p conf_system --authenticationDatabase admin -d conf -o /home/q/www/conf.qunar.com/back_up_db_conf
sudo mongorestore -u root -p conf_system --authenticationDatabase admin -d conf /home/q/www/conf.qunar.com/back_up_db/conf --drop
[参考]
- MongoDB数据迁移方案
- MongoDB数据库的备份,恢复与迁移,回滚