zoukankan      html  css  js  c++  java
  • ubuntu中安装mongodb

    参考链接: http://www.linuxidc.com/Linux/2016-07/133254.htm(主)

    参考链接: http://www.linuxidc.com/Linux/2016-07/133253.htm(如何开启服务以及创建data文件夹借鉴了这里)

    这里遇到的报错问题以及解决:

    开启mongodb的语句 ./mongod

    这里报错是因为data文件夹没有“写”权限

    cd /

    然后 chmod -R 777 data

    这样data文件夹就有增删查改的权限了。

    开启数据库(注意在bin目录下)

    ① ./mongod

    ②./mongo

    设置后台一直运行

     sudo apt-get install mongodb-server (没有会提示安装这个)

    mongod --fork --dbpath=/data --logpath=/usr/local/mongodb/logs/mongodb2.log --logappend

    3.mongodb设置开机启动

    1 vim  /etc/rc.local
    2 //然后添加以下代码
    3 /usr/local/mongodb/bin/mongod  --fork --dbpath=/usr/local/mongodb/data  --logpath=/usr/local/mongodb/logs/mongodb2.log  --logappend

    4 mongodb 安全性(权限操作)

    ①创建管理员

    db.createUser(
      {
        user: "adminUser",
        pwd: "adminPass",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )
    //'userAdminAnyDatabase', 提供所有用户数据管理权限

    然后关闭mongodb连接,关闭数据库

    要启用带访问控制的mongodb,需要加参数 --auth

    mongod --auth --port 27017 --dbpath D:/data/test
    F:	echnologytoolsmongoin>mongo
    MongoDB shell version v3.4.5
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.5
    > show dbs
    2018-03-15T11:27:07.273+0800 E QUERY    [thread1] Error: listDatabases failed:{
            "ok" : 0,
            "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }",
            "code" : 13,
            "codeName" : "Unauthorized"
    } :
    _getErrorWithCode@src/mongo/shell/utils.js:25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
    shellHelper.show@src/mongo/shell/utils.js:769:19
    shellHelper@src/mongo/shell/utils.js:659:15
    @(shellhelp2):1:1
    //可以看到有权限控制了

    ② 登录验证

    第一种 客户端连接时,指定用户名,密码,db名称

    mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"

    第二种 客户端连接后,再进行验证

    mongo --port 27017
    
    use admin
    db.auth("adminUser", "adminPass")
    
    // 输出 1 表示验证成功

    (注意,admin因为是在admin数据库创建的,所以我们要在admin中验证,其他也一样)

    //比如
    > use firstApp
    switched to db firstApp
    > db.auth('admin','123456')
    Error: Authentication failed.
    0

    ③ admin登录后针对具体的数据库,我们创建普通的用户

    > use firstApp
    switched to db firstApp
    > db.createUser({user: 'first',pwd: '123456',roles: [{role: 'readWrite',db:'firstApp'}]})
    Successfully added user: {
            "user" : "first",
            "roles" : [
                    {
                            "role" : "readWrite",
                            "db" : "firstApp"
                    }
            ]
    }

    然后我们就可以在项目中通过用户名,密码登录了

    PS:

    sudo ./mongod --auth --fork --dbpath=/data --logpath=/usr/local/mongodb/logs/mongodb2.log --logappend

    后台运行,发现用之前 ./mongod --auth 开启服务器后创建的用户信息认证不通过,没办法只有重新再创建新的用户

  • 相关阅读:
    SpringBoot整合dubbo2.7.12
    linux安装zookeeper
    javaassist创建对象
    jmeter websocket
    jmeter使用
    jmeter返回值乱码
    HTTP 头 Connection:close 作用 和 解决服务器产生大量close_wait问题
    服务器TCP连接中 TIME_WAIT 状态过多
    Chrome 浏览器远程调试 【转】
    拼多多聊天记录监控、拼多多客服机器人代码、拼多多智能机器人代码、拼多多自动发货、拼多多虚拟卡号自动发货
  • 原文地址:https://www.cnblogs.com/luguiqing/p/6831722.html
Copyright © 2011-2022 走看看