mac M2安装单机版 MongoDB 7.x

news2024/12/23 15:06:38

1. 通过tgz包安装MongoDB

1.1 下载并解压缩安装包

  • 官网下载 mac OS 的 MongoDB 安装包,这里选择7.x版本进行安装(下载链接)

  • 下载好的tgz包,双击解压缩,并重命名为mongdb

  • 将安装包拷贝到安装目录,笔者的安装目录为/usr/local,copy时需要root权限

    sudo cp -rf mongdb /usr/local
    

1.2 设置环境变量

  • 对于mac OS,一般通过~/.zshrc设置环境变量。因此,编辑~/.zshrc,添加如下内容

    export MONGODB_HOME=/usr/local/mongodb
    export PATH=$PATH:$MONGODB_HOME/bin
    
  • source ~/.zshrc后,分别执行如下命令,以保证 MongoDB 成功安装

    • mongod:启动 MongoDB 服务对应的命令
      mongod --version
      
    • mongos:启动 MongoDB 代理,即 mongos 对应的命令
      mongos --version
      
    • mongosh:启动 MongoDB 的shell客户端对应的命令
      mongosh --version
      
  • PS: 奇怪的是,笔者下载的是7.0.14的安装包,mongod --version却显示的是6.0.18

2. 启动服务并执行简单的查询

  • 在 Home 目录下创建data目录,用于存储数据,笔者这里选择的data目录为

    mkdir ~/mongodb/data
    

2.1 最简单的服务启动方式

  • 执行mongod命令,指定data目录、以前台运行的方式启动一个 MongoDB 服务

    • 默认端口号:27017,默认接受 0.0.0.0(所有IP)的访问
    • 默认 authorization 为false,即无需用户和密码就能访问
    mongod --dbpath ./data
    
  • 通过 mongosh 开启一个shell,其默认访问 27017 端口

    mongosh
    
  • test 库的 test_data 集合下,插入几条数据

    use test; # 切换数据库
    # 直接插入数据到test_data集合, MongoDB将自动创建test_data集合
    db.test_data.insertMany([
      { name: "Bob", age: 25, sex: "male", city: "Los Angeles" },
      { name: "Carol", age: 28, sex: "female", city: "Chicago" },
      { name: "Dave", age: 35, sex: "male", city: "San Francisco" }
    ])
    
  • 数据插入成功,返回的信息如下:

  • 执行如下命令,查询name为Bob的信息

    db.test_data.find({'name':"Bob"});
    
  • 成功查询到对应的数据

2.2 后台运行MongoDB

  • 上述启动方式,日志直接输出到控制台对于本地开发是足够的
  • 要想后台启动MongoDB、避免服务被误关闭,可以通过指定相关参数实现
    • --dbpath,指定数据目录。--logpath,指定日志目录
    • --port,指定服务运行端口。--bind_ip_all,允许从所有IP地址访问
    • --fork,以守护进程方式运行(后台运行)
    mongod --dbpath /Users/xxx/mongodb/data --logpath  /Users/xxx/mongodb/log \
    --port 27030 --bind_ip_all --fork
    

  • 还可以通过符合 yaml 格式的配置文件,以后台进程的方式启动 MongoDB

  • 在目录下,创建 /Users/xxx/mongodb/etc/mongod.conf文件,内容如下

    storage:
      dbPath: /Users/xxx/mongodb/data
      journal:
        enabled: true
    
    # 网络相关配置
    net:
      port: 27030
      bindIp: 0.0.0.0  # 允许从所有IP地址访问
    
    # 日志相关配置
    systemLog:
      destination: file
      logAppend: true
      logRotate: rename
      path: /Users/xxx/mongodb/log/mongo.log
    
    # 进程管理相关配置
    processManagement:
      fork: true  # 以守护进程方式运行(后台运行)
    
    # 安全相关配置
    security:
      authorization: disabled  # 关闭用户认证
    
  • 然后,通过指定config文件,实现服务启动

    mongod --config ~/mongodb/etc/mongod.conf
    # --config可以简写为 -f
    mongod -f ~/mongodb/etc/mongod.conf
    

2.3 后台启动的一些注意事项

  • 配置文件指定路径时,一定要写绝对路径 !!!

  • 不然会根据mongod命令的执行路径自动补全,导致路径未初始化,主要报错信息如下:

    "msg":"Error during global initialization"
    "error":{"code":38,"codeName":"FileNotOpen","errmsg":"Can't initialize rotatable 
    	log file :: caused by :: Failed to open /Users/xxx/mongodb/etc/~/mongodb/log/mongod.log"}
    
  • 如果后台启动失败,一般会提示关闭后台启动,也就是说让报错信息直接打印到前台

    • 对于直接mongod --fork的启动方式,其实就是去除 --fork
    • 对于配置文件启动,将 fork: true 改成 fork: false
      在这里插入图片描述

2.4 关于MongoDB的配置文件

  • 从网上能查找的资料,好多配置文件采用旧版写法,有些配置项可能不再支持

  • 例如博客 MongoDB主从复制(master–>slave)环境搭建 中的配置文件,master=true

  • masterslave已经不再支持,会导致MongoDB无法启动,报错信息如下:

    "msg":"Master/slave replication is no longer supported"
    

3. 后记

3.1 MongoDB 诊断命令(Diagnostic Commands)

  • MongoDB Shell 的使用可以参考:MongoDB数据库的基本使用总结
  • MongoDB 提供了丰富的诊断命令:Diagnostic Commands,可以通过这些命令查看连接池、连接数等各种服务状态
  • 甚至,一些数据库函数也可以帮助我们了解MongoDB状态

示例:查看连接数

  • 执行如下命令,可以查看服务的连接情况

    db.serverStatus().connections
    
  • 返回的信息如下,关于db.serverStatus().connections各字段的含义,甚至serverStatus的其他信息,可以参考官方文档:serverStatus

    {
      current: 5, # 当前活动连接数
      available: 199, # 剩余可用连接数,current + available可以得出集群的最大连接数
      totalCreated: 417,  # 自 MongoDB 实例启动以来创建的总连接数
      active: 2, # 连接到服务器的活跃client数量
      threaded: 5,
      exhaustIsMaster: 0,
      exhaustHello: 1,
      awaitingTopologyChanges: 1,
      loadBalanced: Long('0')
    }
    

3.2 参考链接

  • Mac OS 安装 MongoDB 详细步骤

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185416.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入解析开源大模型的GPU资源需求与优化策略

随着大模型的火热很多项目中都使用到了开源大模型,这时候准确评估大模型的GPU资源非常重要,主要有下面几个方面 成本效率:GPU是昂贵的资源。高估内存需求可能导致在硬件上的不必要支出,而低估则可能导致系统故障或性能下降。 性…

【数据结构】什么是红黑树(Red Black Tree)?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌红黑树的概念 📌红黑树的操作 🎏红黑树的插入操作 🎏红黑树的删除操作 结语 📌红黑树的概念 我们之前学过了…

资源《Arduino 扩展板3-WS2812》说明。

资源链接: Arduino 扩展板3-WS2812 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件主要…

通义千问“百宝箱”:效率神器,解放你的双手!

你在为播客转文字、音视频转写和长文本阅读而烦恼吗?今天,就让通义千问的“百宝箱”来帮你解决这些难题! 最近,我发现通义千问首页隐藏着一个效率神器——“百宝箱”(现在更名为工具箱),简直是…

batch和momentum

🚀 机器学习系列前期回顾 1、初识机器学习 2、线性模型到神经网络 3、local minima的问题如何解决 🚀在初识机器学习中,了解了机器学习是如何工作的并引入了线性模型,在线性模型到神经网络这节,将线性模型进一步改进为…

FireRedTTS - 小红书最新开源AI语音克隆合成系统 免训练一键音频克隆 本地一键整合包下载

小红书技术团队FireRed最近推出了一款名为FireRedTTS的先进语音合成系统,该系统能够基于少量参考音频快速模仿任意音色和说话风格,实现独特的音频内容创造。 FireRedTTS 只需要给定文本和几秒钟参考音频,无需训练,就可模仿任意音色…

【Golang】关于Go语言字符串转换strconv

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

ProtoBuf快速上手

文章目录 创建 .proto文件编译 .proto文件编译后生成的文件序列化与反序列化的使用 此篇文章实现内容: 对一个通讯录的联系人信息,使用PB进行序列化,并将结果输出对序列化的内容使用PB进行反序列化,解析联系人信息并输出联系人信…

【成神之路】Ambari实战-015-代码生命周期-metainfo-category详解

1.Redis 集群 metainfo.xml 示例 <?xml version"1.0"?> <metainfo><schemaVersion>2.0</schemaVersion><services><service><!-- Redis 集群服务的基本信息 --><name>REDIS</name><displayName>Redi…

MongoDB的安装与增删改查基本操作

MongoDB是一种非关系型数据库&#xff0c;是NoSQL语言&#xff0c;但是又是最接近关系型数据库的。内部存储不是表结构&#xff0c;但是可以对数据进行表结构的操作。 一、安装 在官网&#xff1a;Download MongoDB Community Server | MongoDB下载系统对应的版本进行安装即可…

html+css+js实现Collapse 折叠面板

实现效果&#xff1a; HTML部分 <div class"collapse"><ul><li><div class"header"><h4>一致性 Consistency</h4><span class"iconfont icon-jiantou"></span></div><div class"…

UFS 3.1架构简介

整个UFS协议栈可以分为三层:应用层(UFS Application Layer(UAP)),传输层(UFS Transport Layer(UTP)),链路层(UIC InterConnect Layer(UIC))。应用层发出SCSI命令(UFS没有自己的命令使用的是简化的SCSI命令),在传输层将SCSI分装为UPIU,再经过链路层将命令发送给Devices。下…

通信工程学习:什么是TCP传输控制协议

TCP&#xff1a;传输控制协议 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是因特网协议套件中最重要的协议之一&#xff0c;它为应用程序提供了可靠、面向连接的通信服务。以下是TCP协议的详细解释&#xff1a; 一、TCP传输控制协议的…

双十一有哪些值得入手的好物?这五款宝藏好物不容错过!

在这个金秋送爽、收获满满的季节里&#xff0c;我们迎来了万众瞩目的双十一购物狂欢节。这不仅仅是一场简单的消费盛宴&#xff0c;更是每一位消费者期待已久、精心筹备的年度购物盛典。随着电商平台的不断革新与优惠力度的持续加码&#xff0c;双十一已经从一个简单的促销日成…

使用百度文心智能体创建多风格表情包设计助手

文章目录 一、智能定制&#xff0c;个性飞扬二、多元风格&#xff0c;创意无限 百度文心智能体平台为你开启。百度文心智能体平台&#xff0c;创建属于自己的智能体应用。百度文心智能体平台是百度旗下的智能AI平台&#xff0c;集成了先进的自然语言处理技术和人工智能技术&…

单目3d重建DUSt3R 笔记

目录 DUSt3R 三维重建 报错RecursionError: maximum recursion depth exceeded in comparison 报错 numpy.core.multiarray failed to import 报错Numpy is not available 解决 升级版mast3r 速度变慢 修改了参数设置脚本&#xff1a; 测试效果 操作技巧 DUSt3R 三维重…

[已解决] Install PyTorch 报错 —— OpenOccupancy 配环境

目录 关于 常见的初始化报错 环境推荐 torch, torchvision & torchaudio cudatoolkit 本地pip安装方法 关于 OpenOccupancy: 语义占用感知对于自动驾驶至关重要&#xff0c;因为自动驾驶汽车需要对3D城市结构进行细粒度感知。然而&#xff0c;现有的相关基准在城市场…

torchvision.transforms.Resize()的用法

今天我在使用torchvision.transforms.Resize()的时候发现&#xff0c;一般Resize中放的是size或者是(size,size)这样的二元数。 这两个里面&#xff0c;torchvision.transforms.Resize((size,size))&#xff0c;大家都很清楚&#xff0c;会将图像的h和w大小都变成size。 但是…

【python实操】python小程序之过七游戏以及单词单复数分类

引言 python小程序之过7游戏、单词单复数分类 文章目录 引言一、过7游戏1.1 题目1.2 代码1.2.1 while循环1.2.2 for循环1.2.3 调用函数形式 1.3 代码解释 二、单词单复数分类2.1 题目2.2 代码2.3 代码解释 三、思考3.1 过七游戏3.2 单词单复数分类 一、过7游戏 1.1 题目 7的倍…

大模型 LLaMA-Omni 低延迟高质量语音交互,开源!

最近这一两周看到不少互联网公司都已经开始秋招发放Offer。 不同以往的是&#xff0c;当前职场环境已不再是那个双向奔赴时代了。求职者在变多&#xff0c;HC 在变少&#xff0c;岗位要求还更高了。 最近&#xff0c;我们又陆续整理了很多大厂的面试题&#xff0c;帮助一些球…