安装wget
yum install -y wget
创建目录
mkdir -p /opt/soft /opt/tarball /opt/src
安装mongo
# 创建mongo data、log目录
mkdir -p /opt/mongo/data /opt/mongo/logs
cd /opt/tarball
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.13.tgz
tar -xvf mongodb-linux-x86_64-4.0.13.tgz -C /opt/soft
cd /opt/soft/mongodb-linux-x86_64-4.0.13/
编辑mongo.conf配置文件
vi mongodb.conf,内容如下:
dbpath=/opt/mongo/data
logpath=/opt/mongo/mogo.log
fork=true
port=27017
logappend=true
#auth=true
bind_ip=0.0.0.0
启动mongo
/opt/soft/mongodb-linux-x86_64-4.0.13/bin/mongod -f /opt/soft/mongodb-linux-x86_64-4.0.13/mongodb.conf
# 检查启动端口情况
netstat -nlpt | grep 27017
访问mongo(非鉴权模式 注释了auth=true)
# 本地client访问mongodb
/opt/soft/mongodb-linux-x86_64-4.0.13/bin/mongo
创建一个用户管理员角色账号
# 查看当前db列表
show dbs
# 切换到admin db
use admin
# 创建用户管理员角色账号
db.createUser(
{user: "useradmin",
pwd: "123456",
roles: ["userAdminAnyDatabase"]}
)
# 然后退出
exit
# 停止mongodb
/opt/soft/mongodb-linux-x86_64-4.0.13/bin/mongod --shutdown -f /opt/soft/mongodb-linux-x86_64-4.0.13/mongodb.conf
修改配置文件,修改为鉴权模式登录
vi /opt/soft/mongodb-linux-x86_64-4.0.13/mongodb.conf
放开auth=true这一样注释
重新启动mongodb
/opt/soft/mongodb-linux-x86_64-4.0.13/bin/mongod -f /opt/soft/mongodb-linux-x86_64-4.0.13/mongodb.conf
重新访问mongodb(鉴权模式 放开注释auth=true)
下面步骤必须一气呵成,否则需要重新来过,不要问为什么,这是mongodb的个性。
# 本地client访问mongodb
/opt/soft/mongodb-linux-x86_64-4.0.13/bin/mongo
# 切换到admin db
use admin
# 使用useradmin账号登录
db.auth("useradmin","123456")
# 创建my_db,并切换到my_db
use my_db
# 在my_db下创建普通用户lazy,角色为readWrite表示该用户拥有my_db的读写权限
db.createUser(
{
user:"lazy",
pwd:"123456",
roles:["readWrite"]
}
)
# 在my_db下使用lazy账号登录
db.auth("lazy","123456")
# 在my_db下插入一条doc,这样才算真正创建my_db数据库
db.createCollection("ok")
mongodb角色介绍
read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
---------------------- 正文结束 ------------------------
长按扫码关注微信公众号
Java软件编程之家