CentOS7.2下安装mongoDB3.2.8

最近在又在倒腾MongoDB,把安装配置的相关命令贴出来 
1、下载 
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.8.tgz

2、解压 
tar zxvf mongodb-linux-x86_64-rhel70-3.2.8.tgz 
mv mongodb-linux-x86_64-rhel70-3.2.8 /usr/local/ 
mv mongodb-linux-x86_64-rhel70-3.2.8 mongodb 
cd mongodb/

mkdir db 
mkdir logs 
cd bin/ 
3、编辑配置文件: 
vim mongodb.conf 
输入以下内容: 
dbpath=/usr/local/mongodb/db 
logpath=/usr/local/mongodb/logs/mongodb.log 
bind_ip=0.0.0.0 
port=27017 
fork=true 
nohttpinterface=true

4、创建新的账号: 
groupadd mongodb 
useradd mongodb -g mongodb 
cd ../../ 
chown -R mongodb:mongodb mongodb

5、启动: 
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/bin/mongodb.conf

6、设置开机自动启动mongodb 
vi /etc/rc.d/rc.local 
/usr/local/mongodb/bin/mongod –config /usr/local/mongodb/bin/mongodb.conf

进入mongodb的shell模式: 
/usr/local/mongodb/bin/mongo 
查看数据库列表: 
show dbs 
查看当前db版本: 
db.version();

7、增加管理员权限:

userAdminAnyDatabase 这个角色拥有分配角色和用户的权限,但没有查写的缺陷 
root 这是超级管理员 
readWrite 有读写权限 
read 有读权限

进入shell模式: 
/usr/local/mongodb/bin/mongo

use admin //切换到admin数据库

db.createUser( 

user: “root”, 
pwd: “testMongoDB2016”, 
roles:[{role:”root”, db:”admin”}] 

);

db.createUser( 

user: “mongoRoot”, 
pwd: “testMongoDB2016”, 
roles:[{role:”userAdminAnyDatabase”, db:”admin”}] 

); 
验证一下,在哪里注册用户的要去哪个db里认证: 
db.auth(“mongoRoot”, “testMongoDB2016”) 
此后可以用这个mongoRoot账号去创建某一数据库管理账号: 
db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”admin”}]})

但发现此时增加的账号不能在客户端登录,原因是mongodb版本错了: 
先退出 mongod 服务

use admin 
db.auth(“root”, “testMongoDB2016”) 
db.shutdownServer() 
再在无认证情况下打开 mongod 
use admin 
db.dropUser(“hhq163”) 
db.system.version.update({ “_id”:”authSchema”},{$set:{“currentVersion”:3}}) 
db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”admin”}]}) 
再以认证的形式启动mongodb

如果需要创建某一个新DB的账号: 
需要在shell下执行: 
use TestDB 
db.createUser({user:”hhq163”,pwd:”test123456”,roles:[{“role”:”readWrite”,”db”:”TestDB”}]})

vim /usr/local/mongodb/bin/mongodb.conf 
在文件末尾增加以下这一行: 
auth=true

8、关闭数据库服务器: 
use admin 
db.shutdownServer()

如果开户安全认证,则要先认证: 
use admin 
db.auth(“root”, “testMongoDB2016”) 
db.shutdownServer()

posted @ 2017-11-27 16:52  鸾舞春秋  阅读(391)  评论(0编辑  收藏  举报