1 解包安装
简单的方法可直接使用yum命令安装。若目标服务器无法连接外来则只能源码包安装,先从mongodb官网下载mongodb包上传到服务器,官网地址:https://www.mongodb.com/try/download/community。再解压:jar xvf mongodb-linux-x86_64-4.0.6.tgz解包。解包后可看到一个bin目录,所有mongo命令都在这个目录下.
在解包的目录下建立logs和data两个文件夹。切换到bin目录下使用命令启动服务:
mongod --dbpath ../data --logpath ../logs/mongodb.log --port 27017 --logappend --fork -bind_ip_all
为了方便操作,定义了启动脚本,内容如下:
MONGO_PATH=/tools/mongodb
${MONGO_PATH}/bin/mongod --auth --dbpath ${MONGO_PATH}/data --logpath ${MONGO_PATH}/logs/mongodb.log --port 27017 --logappend --fork
初始登录 创建用户
服务启动之后,可以切换到bin目录下,使用命令./mongo进入mongodb 控制台。
use admin #使用admin数据库
再输入下面的命令创建admin用户,用于鉴权登录。
db.createUser({
user: "admin",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
使用命令quit()退出控制台。重启mongodb,在启动时加入–auth表示鉴权登录。
鉴权登录 创建普通用户
./mongo进入控制台,通过下面的方式进行身份校验。
也可使用./mongo --port 27017 -u “admin” -p “123456” --authenticationDatabase "admin"直接登录
登录后创建数据库(use DATABASENAME 如果数据库不存在,则创建数据库,否则切换到指定数据库。)
创建用户payment。
问题:服务启动远程主机无法连接
检查后发现是因为监听端口绑定了本地的ip地址。
将启动脚本添加参数 -bind_ip_all
修改后的脚本如下:
MONGO_PATH=/tools/mongodb
${MONGO_PATH}/bin/mongod --auth --dbpath ${MONGO_PATH}/data --logpath ${MONGO_PATH}/logs/mongodb.log --port 27017 --logappend --fork -bind_ip_all
再次启动后使用客户端连接,推荐使用robo3t。
附 数据库角色
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限