您的位置:首页 > 数据库 > Mongodb

CentOS7.2下安装mongoDB3.2.8

2017-11-27 16:52 429 查看
最近在又在倒腾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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: