一、安装前操作
1.1.下载安装包
cd /usr/local/src
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.7.tgz
1.2.配置环境变量
vi /etc/profile
export MONGODB_HOME=/test/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
source /etc/profile
二、安装过程
2.1.解压,创建数据目录
tar -zxvf mongodb-linux-x86_64-3.4.7.tgz -C /test
mv /test/mongodb-linux-x86_64-3.4.7 /test/mongodb
mkdir -p /test/data/mongodb
mkdir -p /var/log/mongodb
mkdir -p /test/mongodb/etc
touch /var/log/mongodb/mongodb.log
2.2.添加配置文件
[root@localhost ~]# vim /test/mongodb/etc/mongodb.conf
dbpath=/test/data/mongodb
logpath=/var/log/mongodb/mongodb.log
logappend=true
port=27017
fork=true
bind_ip=0.0.0.0 # 默认本机访问,远程访问设置
auth = true # 先关闭, 创建好用户在启动
2.3.赋权限
chown -R test:test /test/mongodb
chown -R test:test /test/data/mongodb
chown -R test:test /var/log/mongodb/
2.4.创建登录用户名密码
[root@localhost ~]# mongo --port 27017
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.4.7
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
> use admin
switched to db admin
> db.createUser(
... {
... user: "adminUser",
... pwd: "adminPass",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "adminUser",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> ^C
bye
# 验证是否创建成功,通过用户名密码能正常登录
# 客户端连接时,第一种连接方式:指定用户名,密码,db名称
[root@daicancmp2 ~]# mongo --port 27017 -u "adminUser" -p "adminPass" --authenticationDatabase "admin"
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.4.7
>
# 客户端连接时,第二种连接方式:(输出 1 表示验证成功)
[root@daicancmp2 ~]# mongo --port 27017
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017/
MongoDB server version: 3.4.7
> use admin
switched to db admin
> db.auth("adminUser","adminPass")
1
>
2.5. 创建普通用户
创建用户名:simpleUser
密码:simplePass
权限:读写数据库 foo, 只读数据库 bar
use foo
db.createUser(
{
user: "simpleUser",
pwd: "simplePass",
roles: [ { role: "readWrite", db: "foo" },
{ role: "read", db: "bar" } ]
}
)
【注意】 use foo表示用户在 foo 库中创建,就一定要 foo 库验证身份,即用户的信息跟随随数据库。比如上述 simpleUser 虽然有 bar 库的读取权限,但是一定要先在 foo 库进行身份验证,直接访问会提示验证失败
2.6. 内建角色
- Read:允许用户读取指定数据库
- readWrite:允许用户读写指定数据库
- dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
- userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
- clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
- readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
- readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
- userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
- dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
- root:只在admin数据库中可用。超级账号,超级权限
三、相关配置说明
默认执行用户:test
安装目录:/test/mongodb
配置文件:/test/mongodb/etc/mongodb.conf
数据目录:/test/data/mongodb
日志文件:/var/log/mongodb/mongodb.log
四、启停方法
4.1.启动
su - test
mongod -f /test/mongodb/etc/mongodb.conf
4.2.停止
kill pid # 不能使用kill -9
五、 卸载方法
#1.移除相关目录
mv /test/mongodb /test/mongodb_old
#2.删除环境变量
vim /etc/profile # 在文件末尾处删除以下内容
export MONGODB_HOME=/test/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
source /etc/profile # 执行