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

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: 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

http://www.kler.cn/news/363691.html

相关文章:

  • 使用 CDN 后 Apache 的日志记录客户真实 IP
  • 【设计模式系列】观察者模式
  • 函数柯里化
  • 编辑器、节点树、基础设置
  • grafana failed to load dashboard from file= ... json error=EOF
  • vuetify页面布局
  • pyspark==堆叠
  • 【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-3
  • 洛谷 P1186 玛丽卡(最短路,并查集,线段树)
  • 【LeetCode】修炼之路-0006-Zigzag Conversion (Z 字形变换)【python】
  • Python编程指南
  • Oracle T5-2 ILOM配置
  • TH-OCR:强大的光学字符识别工具与车牌识别应用
  • 【大模型实战篇】大模型分词算法BPE(Byte-Pair Encoding tokenization)及代码示例
  • WPF的UpdateSourceTrigger属性
  • 90V转5V4A同步降压芯片WT6037
  • vue前端接包(axios)+ 前端导出excel(xlsx-js-style)
  • 植物端粒到端粒(T2T)基因组研究进展与展望
  • Android 图片相识度比较(pHash)
  • linux-牛刀小试
  • NAND FLASH 与 SPI FLASH
  • Python基于OpenCV的实时疲劳检测
  • AI网关对企业的意义及如何构建 AI 网关
  • [Windows] 很火的开源桌面美化工具 Seelen UI v2.0.2
  • Github 2024-10-18Java开源项目日报Top9
  • 使用 SSH 连接 GitLab 的常见问题及解决方案