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