mongodb 数据库访问部署相关

启动

  1. 使用配置文件

    mongod -f /etc/mongod.conf

    参数配置

  2. 使用参数

mongod --dbpath=./data

非正常退出程序后 启动报错

sudo mongod -repair

关闭进程

mongo
use admin
db.shutdownServer()

如果权限允许的话就执行成功了

权限

  1. 角色
    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"
        }
    ]
}
  1. 权限
    链接地址
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文件或者表达式如--evalmongo将会先执行你指定的文件后执行.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数据库的备份,恢复与迁移,回滚

你可能感兴趣的:(mongodb 数据库访问部署相关)