美文网首页
mongodb基础环境搭建

mongodb基础环境搭建

作者: plain_face | 来源:发表于2017-05-21 17:58 被阅读0次

    安装(yum方式)

    新建/etc/yum.repos.d/mongodb-org-3.4.repo

    [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    

    执行yum install mongodb-org

    默认路径

    /var/lib/mongo #数据存储位置
    /var/log/mongodb #日志文件
    /etc/mongod.conf #配置文件
    默认mongod.conf里
    bindIp: 127.0.0.1只能本机访问,如果希望其他设备也能访问需要修改为其他ip。port: 27017也可以改成其他端口。端口设置小于1024时,需要root权限启动(linux特性)。

    启动服务

    systemctl start mongod #启动服务
    systemctl enable mongod #设定重启后服务能自启
    相关的启动日志/var/log/mongodb/mongod.log

    配置

    第一次连接

    mongo --host 10.10.10.10 --port 27017
    show dbs #查看当前的database
    admin  0.000GB #管理员数据库
    local  0.000GB
    

    配置管理员用户名和密码

    mongodb默认没有用户名和密码很危险,应该尽快配置。
    用户分为2种:管理员,数据库用户
    管理员只能在admin数据库中设置。

    use admin
    switched to db admin
    > db.createUser({user:"root",pwd:"root123",roles:["userAdminAnyDatabase"]})
    Successfully added user: { "user" : "root", "roles" : [ "userAdminAnyDatabase" ] }
    

    设置了一个用户名为root,密码为root123的管理员帐号。

    > db.auth("root","root123")
    1
    

    使用root帐号进行登录,如果成功则返回1

    > show collections
    system.users
    system.version
    

    在admin数据库里show collections(collections相当于表)可以看到system.users这个是用来保存用户权限的。

    创建新数据库和相应的用户

    > use TestDB
    switched to db TestDB
    > db
    TestDB
    

    如果TestDB不存在则新创建此数据库,如果存在则切换到此数据库。db命令查看当前所用的数据库。

    > show dbs
    admin  0.000GB
    local  0.000GB
    

    show dbs发现新建的TestDB没有显示出来。要显示的数据库,至少需要有一行数据。

    > db.name.insert({"name":"tester"})
    WriteResult({ "nInserted" : 1 })
    > show dbs
    TestDB  0.000GB
    admin   0.000GB
    local   0.000GB
    

    为数据库TestDB添加用户

    > db.createUser({user:"testuser",pwd:"testpass",roles:["readWrite"]})
    Successfully added user: { "user" : "testuser", "roles" : [ "readWrite" ] }
    

    验证登录一下

    > db.auth("testuser","testpass")
    1
    

    使安全配置生效

    编辑/etc/mongod.conf文件
    在#security:行下添加

    security:
      authorization: enabled
    

    之后systemctl restart mongod #重启服务
    如果不是yum安装,是下载tar包安装的话,直接在运行参数后面添加 --auth就可以了。
    比如这样

    nohup mongod --dbpath /root/data --auth &
    

    连接测试权限

    mongo 10.10.10.10:27017/TestDB -u testuser -p testpass
    MongoDB shell version v3.4.4
    connecting to: mongodb://10.10.10.10:27017/TestDB
    MongoDB server version: 3.4.4
    > db
    TestDB
    

    图形化管理robomongo

    robomongo是个图形化的mongodb的管理工具,支持:windows,MAC,Linux
    https://robomongo.org/download

    使用python的pymongo库进行连接

    pip install pymongo安装后(conda里也有此包)
    在代码中

    from pymongo import MongoClient
    
    client = MongoClient('10.10.10.10:27017')
    db = client['TestDB'] #TestDB是数据库名
    db.authenticate('testuser', 'testpass') #用户名和密码
    testCollection = db['testColl'] #testColl是要连接的collection名

    相关文章

      网友评论

          本文标题:mongodb基础环境搭建

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