美文网首页我爱编程
mongodb 数据库访问部署相关

mongodb 数据库访问部署相关

作者: 溪离欣洛 | 来源:发表于2018-02-11 11:53 被阅读37次

    启动

    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 数据库访问部署相关

        本文链接:https://www.haomeiwen.com/subject/yzuktftx.html