• 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
  • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
  • 西安启动唐长安城明德门遗址保护工程 2019-04-07
  • 2019款沃尔沃S60高性能版官图发布 本月20号正式亮相 2019-04-07
  • 银保监会新规剑指大企业多头融资和过度融资 2019-04-03
  • 王者之师人才济济 日耳曼战车能否打破卫冕魔咒 2019-04-01
  • 靠山山倒不如靠自己。远水救不了近火,这样的简单道理都不懂该有这样一劫 2019-04-01
  • 解决半岛问题 中美对话合作必不可少 2019-03-21
  • 阳泉计划今年在全省率先整体脱贫 2019-03-21
  • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
  • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
  • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
  • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
  • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
  • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01
  • 今天看啥
      热点:

        新疆35选7的开奖号 www.ts3ne.com

        MongoDB数据库维护操作:连接&用户管理&备份,mongodb数据库


        启动/关闭 mongodb 服务

        启动服务mongodb 服务的启动方式由 2 种,直接通过指定启动参数启动,和通过配置文件启动,这两种方式可以混合使用;?
        # 指定启动参数启动 mongodb
        $ mongod --dbpath=/usr/bin/mongodb-3.6.2/data --logpath=/usr/bin/mongodb-3.6.2/logs/mongo.log --appendlog ? 
        ?
        # 指定配置文件启动 mongodb
        $ mongod -f /etc/mongod.conf
        ?
        # 混合方式启动 mongodb
        $ mongod -f /etc/momgod.conf --auth 
        配置文类似如下,类似于 properties 文件的格式,这些配置参数和说明可以通过 mongod --help 获?。?
        dbpath=/usr/bin/mongodb-3.6.2/data
        journal=true
        logpath=/usr/bin/mongodb-3.6.2/logs/mongod.log
        logappend=true
        bind_ip=127.0.0.1
        port=27017
        auth=true
        关闭服务前台运行关闭,如果启动服务时没有使用 --fork 参数,可以直接在前台退出终端关闭;如果使用 --fork 指令是服务在后台运行,需要向服务器发送 shutdownServer() 来关闭该数据库:
        ?
        > use admin
        > db.shutdownServer()

        连接 mongodb

        在终端连接 mongodb 的指令如下,使用指定用户密码连接指定数据库;mongo -u user_name -p password file_name?
        # 直接登陆 mongo
        $ mongo ? 
        ?
        # 使用管理员密码,以管理员权限登陆本地默认端口(27017)的 mongodb
        $ mongo -u assad -p mongo123 localhost/admin
        ?
        # 使用用户密码(user=vancy,passowrd=mongo2233),登陆指定地址的 mongodb 数据库(127.233.22.33:2233/article)
        $ mongo -u vancy -p mongo2233 127.233.22.33:2233/article
        ?退出数据库连接终端和 mysql 一样都是?exit 指令;
        mongo shell 其实使用 JavaScript 作为解释引擎的,所以在里面可以运行简单的 js 代码,甚至可以创建方法,定义变量;?
        > 1 + 1
        2
        > var num = 2333
        > num + 1000
        3333

        用户管理

        mongodb 默认安装后并没有存在管理员用户,需要自己手动添加,mongodb 的用户是和数据库相关联的,在某一个库里授权,就必须在某一个库里验证,除了 admin 库里的授权可以用于任何库之外,其他普通库之间的授权和验证是相互独立的;

        创建用户

        使用 db.createUser() 在当前数据库里创建用户,该函数含有以下键值对:user:用户名,值为一个 string;
        pwd:用户密码,值为一个 string;
        roles:用户权限规则,值为一个数组,每一个 数组项含有以下键值对:role:权限规则;db:指定使用权限规则的数据库,可以省略,默认 role 用于当前数据库;
        其中 role 的选项如下:数据库用户角色
        read:只读权限;readWrite:读写权限;数据库管理角色dbAdmin:数据库管理权限(包括执行管理函数(如索引集合创建删除),查看统计,访问 system.profile)userAdmin:用户管理权限(允许读写 system.users 集合,创建、删除、管理用户);dbOwner:readWrite,dbAdmin,userAdmin 权限合集;
        所有数据库角色readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabasem、dbAdminAnyDatabase集群管理角色clusterAdmin、clusterManager、clusterMonitor、hostManager;备份恢复角色backup、restore超级用户:root:超级权限,拥有所有权限;
        其中?readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabasem、dbAdminAnyDatabase、clusterAdmin、root 这几个权限只有在 admin 库中才可以授权;
        一个简单的示例如下:?
        # 连接 test 数据库
        > use test ? ? 
        ?
        # 在 test 库下创建管理员账户,对 test 库拥有管理权限
        > db.createUser({
        ...  user:"admin1",
        ...  pwd:"ad123",
        ...  roles:[ { role:"dbAdmin", db:"test"} ] ? # 此处可以替换为 roles:[ "dbAdmin" ]
        })
        ?
        ?
        # 在 test 库下创建普通用户,对 test 库只拥有读写权限
        > db.createUser({ 
        ... ?  user:"user1", 
        ... ?  pwd:"1234",
        ... ?  roles:[ { role:"readWrite", db:"test"} ] ?# 此处可以替换为 roles:[ "readWrite" ]
        ... })
        想要管理非当前数据库的用户,只能在 admin 数据库中才能做到,但是在 admin 库中创建的 user 是保存在 admin 库的 system.users 集合中的,如下:?
        > use admin
        # 在 admin 库中创建用户 user3,拥有 testdb 库的读写权限,和 testdb2 库的管理权限
        > db.createUser({
        ... user:"user3",
        ... pwd:"123",
        ... roles:[ { role:"readWrite", db:"testdb"},
         ? ? ? ? ?  { role:"dbAdmin", db:"testdb2" } ]
        ... })

        用户验证

        在 mongodb 服务开启了 --auth 启动参数(使用验证模式运行),用户在访问某个数据库,在进行某些操作时需要进行验证;登陆用户有 2 种方式,一种是直接使用用户身份登陆某个数据库,一种是在使用过程中使用用户身份验证;?
        # 直接使用 ueer3 的身份登陆本地数据库 testdb
        $ mongo -u user3 -p 123 localhost/testdb
        > ....
        ?
        # 在使用过程中进行用户身份验证
        $ mongo
        > use testdb
        > show collections
        2018-02-13T21:30:11.107+0800 E QUERY ?  [thread1] Error: listDatabases failed: .... ? # 当前身分没有查看 testdb 的权限
        > db.auth('user3','123') ? ? # 验证 user3 用户的身份
        > use testdb
        > show collection
        .....

        查看用户信息

        使用?db.system.users.find() 函数可以查看的用户信息,注意使用该函数的用户必须拥有用户管理的信息,该函数返回的用户信息的压缩格式的,如果要查看完整格式可以使用?db.system.users.find().pretty()??
        > use test
        # 查看 test 库的所有用户信息
        > db.system.users.find().pretty()
        ....
        # 查看 test 库中的 assad 用户信息
        > db.system.users.find({user:'assad'}).pretty()
        ....
        
        

        修改用户信息

        用户信息的更新是用通过对 db.systems.users 集合进行 update 操作来实现的,注意使用该函数的用户必须拥有用户管理的信息;?
        # 更新 test 库中的 user1 用户的密码
        > use test
        > db.system.users.update({user:'user1'},{$set:{'pwd':'mongo123'}})

        删除用户

        删除用户是用通过对 db.systems.users 集合进行 remove 操作来实现的,注意使用该函数的用户必须拥有用户管理的信息;
        ?
        # 删除 test 库中的 user1 用户
        > use test
        > db.system.users.remove({user:'user1'})




        备份和恢复

        数据备份

        对于 mongodb 的数据备份可以使用自带的 mongodump 工具进行,该和工具的调用原型如下:?
        $ mongodump -h dbhost -d dbname -o dbdirectory 
        -h:mongodb 所在的服务器地址,可以指定 ip,或者 ip:port ,如:127.0.0.1或 127.0.0.1:27017;
        -d:需要备份的数据库名称,如:test;
        -o:储存备份的路径;
        注意 mongodump 工具必须在 mongo 服务启动后才可以使用,如果 mongo 服务设定了 auth 验证模式,还需要 -u -p 参数指定拥有相关权限的用户;示例:
        ?
        # 备份 test 数据库
        $ mongodump -h localhost:27017 -d /usr/local/bin/mongodb/data/test/ -o /usr/backup/mongodb/
        # 备份所有数据库
        $ mongodump -h localhost:27017 -d /usr/local/bin/mongodb/data/ -o /usr/backup/mongodb/

        数据恢复

        对于 mongodb 的数据备份可以使用自带的 mongorestore工具进行,该和工具的调用原型如下:
        ?
        $ mongodump -h dbhost -d dbname [--drop ] [--dir ] backpath 
        -h,--host:mongodb 所在的服务器地址,可以指定 ip,或者 ip:port ,如:127.0.0.1或 127.0.0.1:27017;
        -d, --db:需要备份的数据库名称,如:test,这个名称可以和原来备份时候的命名不一样;
        --drop:恢复的时候,先删除当前数据,然后恢复备份的数据。
        --dir:备份数据所在位置,如:/user/share/backup/test??梢允÷?--dir,不过路径必须放在命令的最后;注意 mongodump 工具必须在 mongo 服务启动后才可以使用,如果 mongo 服务设定了 auth 验证模式,还需要 -u -p 参数指定拥有相关权限的用户;
        ?
        # 从备份里恢复 test 数据库
        $ mongorestore -h lcoalhsot:27017 -d /usr/local/bin/mongodb/data/test/ /usr/backup/mongodb/
        # 从备份里恢复所有数据库
        $ mongorestore -h lcoalhsot:27017 -d /usr/local/bin/mongodb/data/ /usr/backup/mongodb/

        新疆35选7的开奖号 www.ts3ne.comtrue//www.ts3ne.com/DB2/1305644.htmlTechArticleMongoDB数据库维护操作:连接amp;用户管理amp;备份,mongodb数据库 启动/关闭 mongodb 服务 启动服务 mongodb 服务的启动方式由 2 种,直接通过指定...

        相关文章

        帮客评论

        视觉看点
      • 大众因“排放门”被罚10亿欧元 外媒:处罚还没完 2019-04-11
      • 俄罗斯足球队50横扫沙特队真是让人大饱眼福,特提精神!俄罗斯是战斗民族名不虚传。 2019-04-09
      • 西安启动唐长安城明德门遗址保护工程 2019-04-07
      • 2019款沃尔沃S60高性能版官图发布 本月20号正式亮相 2019-04-07
      • 银保监会新规剑指大企业多头融资和过度融资 2019-04-03
      • 王者之师人才济济 日耳曼战车能否打破卫冕魔咒 2019-04-01
      • 靠山山倒不如靠自己。远水救不了近火,这样的简单道理都不懂该有这样一劫 2019-04-01
      • 解决半岛问题 中美对话合作必不可少 2019-03-21
      • 阳泉计划今年在全省率先整体脱贫 2019-03-21
      • 《王者荣耀》Switch版正式公布 今年秋季推出 2019-03-16
      • 十多次告病危 2岁高危白血病男童盼来“生命火种” 2019-03-16
      • 摄艳|本网摄影师赤壁、竹林创作人像尽显侠客风 2019-03-16
      • 我在吃饭,重点在那?重点在饭,难道我只能吃饭吗?看着就想笑 2019-03-10
      • 人民日报社习近平新闻思想理论研讨会发言摘编 2019-03-10
      • 建始白云草地音乐节:醉了游人,火了产业,牵动慈善 2019-03-01