一. tar 文件安装
1. mongodb 下载
tar文件下载 地址: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-debian92-4.0.10.tgz
mongodb官网地址:https://www.mongodb.com/download-center/community
2. 解压tar文件
tar -zxvf mongodb-linux-x86_64-debian92-4.0.10.tgz
3. 在/opt/mongodb下创建文件夹
存储数据库:mkdir db
存储日志: mkdir logs
创建mongodb.conf文件: vim mongodb.conf
添加 mongodb.conf 配置:
dbpath = /opt/mongodb/db
logpath = /opt/mongodb/logs/mongodb.log
port = 27017
fork = true
4. 添加环境变量
vim /etc/profile
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
保存后,重启系统配置
source /etc/profile
5. 启动mongo
mongod -f /opt/mongodb/mongodb.conf --bind_ip_all --auth
--bind_ip_all: 解决外网访问问题
--auth: 启用认证
6. 测试启动mongodb
/usr/local/mongodb/bin/mongo
7. 配置账号和密码
a. 创建管理员用户
#创建管理员用户
use admin
db.createUser({user:"admin",pwd:"admin",roles:["root"]})
#认证登录
db.auth("admin", "password")
b. MongoDB role 类型
- 数据库用户角色(Database User Roles)
read:授予User只读数据的权限
readWrite:授予User读写数据的权限
- 数据库管理角色(Database Administration Roles):
dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User
- 备份和还原角色(Backup and Restoration Roles):
backup
restore
- 跨库角色(All-Database Roles):
readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限
- 集群管理角色(Cluster Administration Roles):
clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server
c. 添加数据库用户
#切换数据库
use db
#创建用户flowpp,设置密码flopww,设置角色dbOwner
db.createUser({user: "flowpp", pwd: "flopww", roles: [{ role: "dbOwner", db: "flowpp" }]})
#查看系统用户
db.system.users.find()
#.删除用户
db.dropUser("flowpp")
8. 设置开机启动
让mongodb在系统启动是就启动需要在/etc/init.d下加入mongodb的sh文件
建立/etc/init.d/mongodb文件
vim /etc/init.d/mongodb
编写开机启动脚本
#!/bin/sh
### BEGIN INIT INFO
# Provides: mongod
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop
### END INIT INFO
# Source function library.
. /lib/lsb/init-functions
retval=0
pidfile=`ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'`
# mongodb配置文件地址
CONFIG="/usr/local/mongodb-4.0.10/bin/mongodb.conf"
# mongod执行文件地址
PROGRAM="/usr/local/mongodb-4.0.10/bin/mongod"
MONGOPID=`ps -ef | grep 'mongod' | grep -v grep | awk '{print $2}'`
test -x $PROGRAM || exit 0
case "$1" in
start)
ulimit -n 3000
log_begin_msg "Starting MongoDB server"
$PROGRAM -f $CONFIG --bind_ip_all --auth &
log_end_msg 0
;;
stop)
log_begin_msg "Stopping MongoDB server"
if [ ! -z "$MONGOPID" ]; then
kill -15 $MONGOPID
fi
log_end_msg 0
;;
status)
;;
*)
log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}"
exit 1
esac
exit 0
保存文件并修改权限
chmod +x /etc/init.d/mongodb
注册开机脚本
update-rc.d mongodb defaults
二. 容器安装mongodb
1. 查询mongodb镜像
docker search mongo
2. 拉取镜像
docker pull mongo
3. 运行镜像
docker run -it -p 27017:27017 -v /opt/data/mongodb/db/:/opt/data/mongodb/db/ -d --name mongodb --net=bridge --restart=always mongo:latest --auth
4. 修改/etc/mongod.conf.orig 配置文件 设置端口号、远程连接IP、数据文件存放路径
5. 重启docker容器