目录
- 版本
- 部署
- 上传到服务器中
- 创建目录,解压
- 创建mongodb.conf
- 添加环境变量
- 添加到系统服务中
- centos6 中添加到服务中
- 重新加载服务并启动
- 卸载,mongodb.conf配置项等
- 创建用户,设置用户名密码角色
- 启动验证
- 验证
- 常见知识
- mongodb角色
- mongodb.conf配置
版本
官网下载地址: https://www.mongodb.com/try/download/community
选择对应的版本进行安装,本次部署的为6.0.3
社区服务版
shell工具
tool工具
部署
上传到服务器中
习惯性的放在/opt目录下。 其他位置也可以
创建目录,解压
mkdir -p /opt/mongodb/mongodb-server
mkdir -p /opt/mongodb/mongodb-cli
mkdir -p /opt/mongodb/mongodb-tool
mkdir -p /opt/mongodb/data
mkdir -p /opt/mongodb/log
cd /opt
tar -xvf mongodb-linux-x86_64-rhel70-6.0.3.tgz
tar -xvf mongosh-1.6.0-linux-x64.tgz
tar -xvf mongodb-database-tools-rhel70-x86_64-100.6.1.tgz
mv mongodb-linux-x86_64-rhel70-6.0.3/* mongodb/mongodb-server/
mv mongosh-1.6.0-linux-x64/* mongodb/mongodb-cli/
mv mongodb-database-tools-rhel70-x86_64-100.6.1/* mongodb/mongodb-tool/
创建mongodb.conf
vi /etc/mongodb.conf
# 这是该配置文件内容
# 数据库路径
dbpath=/opt/mongodb/data
# 日志输出文件路径
logpath=/opt/mongodb/log/mongodb.log
# 错误日志采用追加模式
logappend=true
# 启用日志文件,默认启用
journal=true
# 这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true
# 端口号 默认为27017
port=27017
#只允许本地ip:127.0.0.1连接到该数据库服务
#bind_ip=127.0.0.1
#允许远程访问
bind_ip=0.0.0.0
#开启子进程(作用:让MongoDB服务在linux后台运行)
fork=true
#开启认证,必选先添加用户,先不开启(不用验证账号密码)
# auth=true
添加环境变量
vi /etc/profile # 修改一下环境变量,将下面的地址追加到文档最后,mongodb_home可以不加,后面我们做启动优化
export MONGODB_HOME=/opt/mongodb/mongodb-server
export MONGODB_CLI=/opt/mongodb/mongodb-cli
export MONGODB_TOOL=/opt/mongodb/mongodb-tool
export PATH=$PATH:$MONGODB_HOME/bin:$MONGODB_CLI/bin:$MONGODB_TOOL/bin
source /etc/profile # 刷新一下环境变量
添加到系统服务中
交由systemd进行管理
vi /usr/lib/systemd/system/mongodb.service
# 以下是文件内容
[Unit]
Description=mongodb-server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/opt/mongodb/mongodb-server/bin/mongod --config /etc/mongodb.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/opt/mongodb/mongodb-server/bin/mongod --shutdown --config /etc/mongodb.conf
PrivateTmp=true
Restart=always
RestartSec=1
[Install]
WantedBy=multi-user.target
注意:
mongodb.service 中的路径要写全路径,如果用环境变量会有问题。读不到;不过可以可以通过定义Environment来定义环境变量解决
centos6 中添加到服务中
vi /etc/init.d/mongodb.server
# 脚本是这个
#!/bin/bash
#
#chkconfig: 2345 80 90
#description: mongodb
start() {
rm -f /datas/mongodb/data/mongod.lock
/datas/mongodb/mongodb-server/bin/mongod --config /etc/mongodb.conf
}
stop() {
/datas/mongodb/mongodb-server/bin/mongod --config /etc/mongodb.conf --shutdown
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
重新加载服务并启动
systemctl daemon-reload
systemctl start mongodb
# 查看运行状态
systemctl status mongodb
# 设置开机启动
systemctl enable mongodb
卸载,mongodb.conf配置项等
具体可查看官方文档 https://www.mongodb.com/docs/v6.0
创建用户,设置用户名密码角色
mongosh
# 切换到admin库中
use admin
# 创建超级管理员用户
db.createUser({user:"admin", pwd:"P@ssw0rd",roles:["root"]})
# 查看用户列表
db.system.users.find()
启动验证
修改/etc/mongodb.conf ;
systemctl restart mongodb;
验证
mongosh
use admin;
db.auth("admin","P@ssw0rd");
常见知识
mongodb角色
数据库用户角色
read: 只读数据权限
readWrite:读写数据权限
数据库管理角色
dbAdmin: 在当前db中执行管理操作的权限
dbOwner: 在当前db中执行任意操作
userADmin: 在当前db中管理user的权限
备份和还原角色
backup: 备份
restore: 还原
夸库角色
readAnyDatabase: 在所有数据库上都有读取数据的权限
readWriteAnyDatabase: 在所有数据库上都有读写数据的权限
userAdminAnyDatabase: 在所有数据库上都有管理user的权限
dbAdminAnyDatabase: 管理所有数据库的权限
集群管理
clusterAdmin: 管理机器的最高权限
clusterManager: 管理和监控集群的权限
clusterMonitor: 监控集群的权限
hostManager: 管理Server
超级权限
root: 超级用户
mongodb.conf配置
# mongodb.conf
# 数据库文件位置
dbpath=/var/lib/mongodb
#日志文件的路径
logpath=/var/log/mongodb/mongodb.log
# 是否追加方式写入日志,默认True
logappend=true
# 设置绑定ip
bind_ip = 127.0.0.1
# 设置端口
port = 27017
# 是否以守护进程方式运行,默认false
fork = true
# 启用日志文件,默认启用
journal=true
# 启用定期记录CPU利用率和 I/O 等待,默认false
#cpu = true
# 是否以安全认证方式运行,默认是不认证的非安全方式
#noauth = true
#auth = true
# 详细记录输出,默认false
#verbose = true
#用于开发驱动程序时验证客户端请求
#objcheck = true
# # 启用数据库配额管理,默认false
#quota = true
# 设置oplog日志记录等级,默认0
# 0=off (default)
# 1=W
# 2=R
# 3=both
# 7=W+some reads
#oplog = 0
# 是否打开动态调试项,默认false
#nocursors = true
# 忽略查询提示,默认false
#nohints = true
# 禁用http界面,默认为localhost:28017
#nohttpinterface = true
# 关闭服务器端脚本,这将极大的限制功能,默认false
#noscripting = true
# 关闭扫描表,任何查询将会是扫描失败
#notablescan = true
# 关闭数据文件预分配
#noprealloc = true
# 为新数据库指定.ns文件的大小,单位:MB
# nssize = <size>
# 用于Mongo监控服务器的Accout token。
#mms-token = <token>
# Mongo监控服务器的服务器名称。
#mms-name = <server-name>
# Mongo监控服务器的Ping间隔时间,即心跳
#mms-interval = <seconds>
# Replication Options
# 设置主从复制参数
#slave = true # 设置从节点
#source = master.example.com # 指定从节点的主节点
# Slave only: 指定要复制的单个数据库
#only = master.example.com
# or
#master = true # 设置主节点
#source = slave.example.com
# 设置副本集的名字,所有的实例指定相同的名字属于一个副本集
replSet = name
#pairwith = <server:port>
# 仲裁服务器地址
#arbiter = <server:port>
# 默认为false,用于从实例设置。是否自动重新同步
#autoresync = true
# 指定的复制操作日志(OPLOG)的最大大小
#oplogSize = <MB>
# 限制复制操作的内存使用
#opIdMem = <bytes>
# 设置ssl认证
# Enable SSL on normal ports
#sslOnNormalPorts = true
# SSL Key file and password
#sslPEMKeyFile = /etc/ssl/mongodb.pem
#sslPEMKeyPassword = pass