最近在又在倒腾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()