mongodb在linux下的部署

版本

官网下载地址: https://www.mongodb.com/try/download/community

选择对应的版本进行安装,本次部署的为6.0.3

社区服务版

image

shell工具

image

tool工具

image

部署

上传到服务器中

image

习惯性的放在/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

image

卸载,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()

image

启动验证

修改/etc/mongodb.conf ;

image

systemctl restart mongodb;

验证

mongosh

use admin;

db.auth("admin","P@ssw0rd");

image

常见知识

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaOpsPro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值