背景介绍
项目需支持MongoDB类型数据库,此类型数据库为非标准、通用的数据库,测试环境需测试人员参考生产环境数据库版本及集群类型去搭建。
一、Mongod及相关依赖文件的安装
集群类型:Replica set(副本集)
MongoDB 版本:3.0.8
Linux系统:linux 64bit
目录:/opt/mongodb
1.1 Mongodb安装:
tar -zxvf mongodb-linux-x86_64-rhel70-3.0.8.tgz -C /opt/mongodb/
mkdir /opt/mongodb/data
mkdir /opt/mongodb/logs
1.2 glibc-2.14 安装
tar xzf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
../configure --prefix=/opt/glibc-2.14
make -j4
make install
cd /lib64/
rm -rf libc.so.6
export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
ln -sf /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
#ln -sf 强制覆盖
1.3 libstdc++.so.6.0.20 安装
cd /usr/lib64/
上传libstdc++.so.6.0.20
#rm -rf libstdc++.so.6
ln -sf libstdc++.so.6.0.20 libstdc++.so.6
1.4 日期问题解决
Failed global initialization: BadValue Invalid or no user locale set. Please ensure LANG and/or LC_* environment variables are set correctly.
vim /etc/profile
export LC_ALL=C
source /etc/profile
# tee /etc/environment <<- 'EOF'
LANG=en_US.utf-8
LC_ALL=
EOF
# source /etc/environment
1.5 时区不对问题解决
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
export TZ='Asia/Shanghai'
vim ~/.bashrc
export TZ='Asia/Shanghai'
1.6 初始化配置
./mongod
var config = {
_id : "replPrd",
members : [
{_id : 1, host : "10.235.112.3:27017"},
{_id : 2, host : "10.235.112.4:27017"},
]
}
rs.initiate(config)
二、MongoDB测试及常用命令
2.1集群添加节点
use admin
db.auth('admin','admin')
rs.add("10.237.7.171:27017")
rs.add("10.237.7.172:27017")
rs.add("10.237.7.173:27017")
2.2 集群删除节点:
rs.remove("10.47.213.180:27017")
rs.remove("10.47.213.181:27017")
rs.remove("10.47.213.184:27017")
2.3 关闭当前节点
db.shutdownServer()
2.4 创建用户数据库
use studentdb
db.createUser( { user: "test", pwd: "root123", roles: [ { role: "dbOwner", db: "studentdb" } ] })
db.auth('test','root123')
db.auth('admin','admin')
2.5 从节点读数据:
rs.slaveOk();
db.student.find().pretty()
2.6 超级管理员
use admin
db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })
2.7 所有数据库读写的权限
db.createUser({user:"zzw558",pwd:"zzw558",roles:[{role:"readWriteAnyDatabase",db:"admin"}]})
db.auth('zzw558','zzw558')
use studentdb
db.student.insert({_id:"1",content:"prd mongodb!",userid:"1",name:"di",visits:NumberInt(1234)});
2.8 给admin用户赋予集群管理的权限:
member:PRIMARY> db.grantRolesToUser("admin", ["clusterAdmin"])
2.9 开启权限认证需生成KEY
openssl rand -base64 741 > mongodb-keyfile
chmod 600 mongodb-keyfile
keyFile=/opt/mongodb/mongodb/conf/mongodb-keyfile