当前位置: 首页 > news >正文

mongodb在linux下的部署

目录

  • 版本
  • 部署
    • 上传到服务器中
    • 创建目录,解压
    • 创建mongodb.conf
    • 添加环境变量
    • 添加到系统服务中
      • centos6 中添加到服务中
    • 重新加载服务并启动
    • 卸载,mongodb.conf配置项等
  • 创建用户,设置用户名密码角色
  • 启动验证
    • 验证
  • 常见知识
    • mongodb角色
    • mongodb.conf配置

版本

官网下载地址: 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: mongodbstart() {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" instart)start;;stop)stop;;restart)stopstart;;*)echo $"Usage: $0 {start|stop|restart}"exit 1;;esacexit 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;

验证

mongoshuse 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

http://www.mrgr.cn/news/58054.html

相关文章:

  • MoCoOp: Mixture of Prompt Learning for Vision Language Models
  • yolo目标检测和姿态识别和目标追踪
  • 九州未来亓绚亮相丽台Solution Day 2024,共建AI赋能教育新时代
  • pulseaudio的相关操作(二)
  • 简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
  • 08_实现 reactive
  • 在 Flutter鸿蒙next版本 中使用 if 语句和三元表达式进行视图逻辑判断
  • Unity之如何在Linux上部署Dedicated Server专用服务器
  • 函数柯里化
  • 头歌——人工智能(搜索策略)
  • 【LeetCode】11.盛最多水的容器
  • 【福建医科大学附属第一医院-注册安全分析报告】
  • 优雅/灵活 地定制tkinter按钮样式
  • 在Windows 10操作系统中搭建FTP
  • Java 使用 aspose-cells 转 Excel 为 PDF 丢失表格线,列过多分页,单元格内容显示不全问题
  • 线上问题排查-频繁GC
  • 大数据治理:Python实现与案例分析
  • C/C++语言基础--C++模板与元编程系列一(泛型、模板、函数模板、全特化函数模板………)
  • C语言字符函数和字符串函数
  • 介绍 Docker 的基本概念和优势,以及在应用程序开发中的实际应用。(AI)
  • JavaSE——IO流7:其他流
  • 深入理解Flutter鸿蒙next版本 中的Widget继承:使用extends获取数据与父类约束
  • JWT加密解密
  • 【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
  • 深入解析 Flutter兼容鸿蒙next全体生态的横竖屏适配与多屏协作兼容架构
  • opencv深度学习:面部特征点匹配与图像融合--换脸