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 开启服务器后创建的用户信息认证不通过,没办法只有重新再创建新的用户

原文地址:https://www.cnblogs.com/luguiqing/p/6831722.html