mac安装mongoDB详细步骤 && 使用遇到的坑

一、下载安装

方法一: 官网链接下载安装

https://www.mongodb.com/try/download/community

方法二:

上面的网页Download按钮旁边有个copyLink,复制下来。

    • cd /usr/local
      进入目录
    • sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl-x86_64-4.0.9.tgz
      开始下载,后面的地址替换为最新版本的地址
    • sudo tar -zxvf mongodb-osx-ssl-x86_64-4.0.9.tgz
      解压,这里的文件名也需要替换为按版本的文件名,具体可以下载之后ls看一下文件即可
    • sudo mv mongodb-osx-x86_64-4.0.9/ mongodb
      解压后改名,不要忘了改文件名

二、 配置环境变量

1、在终端中输出 "sodu vim ~/.bash_profile",打开bash_profile文件。
2、将安装目录的bin目录地址 "export PATH=${PATH}:/usr/local/mongoDB/bin" 添加到环境变量中。

3、在终端中输入"sudo source ~/.bash_profile"使配置立即生效。
4、在终端中输入 "mongod -version",如果出现如下信息则说明path配资环和安装都已成功 
 

三、启动服务和链接数据库

  • 创建log和data目录

    在/usr/local/mongoDB 目录下创建两个文件夹: data 和 log。

    注意:如果创建目录的时候提示没有权限 mkdir: data: Permission denied,执行 sudo chmod 777 /usr/local/mongoDB

  • 启动mongodb服务

在终端中,先进入data和log所在的目录,也就是/usr/local/mongoDB ,然后输入"sudo mongod --dbpath data --logpath log/mongod.log --logappend",启动mongodb服务(当前终端不要关闭)

启动验证:

sudo mongod --dbpath /usr/local/mongodb/data --logpath /usr/local/mongodb/log/mongod.log --logappend --fork --auth 

启用验证前,先使用mongosh连接数据库,然后创建用户:

db.createUser({user:"root",pwd:"123456",roles:[{"role":"userAdmin","db":"admin"},{"role":"root","db":"admin"},{"role":"userAdminAnyDatabase","db":"admin"}]})

 

摘自:https://blog.csdn.net/weixin_42354407/article/details/123586426(更多细节参考原文) 

============== 踩坑记录 ==================

  1. nodejs代码连接报错:

    const serverSelectionError = new ServerSelectionError();
    ^

    MongooseServerSelectionError: connect ECONNREFUSED ::1:27017
    使用工具Studio 3T(下载地址:)可以正常连接。开始以为程序中可能需要认证,去把用户创建了还是不行。
    到官网搜了下,说是nodejs最新版,可能需要把localhost改成127.0.0.1。改了之后果然就ok了

    mongodb://yangdj:123456@localhost:27017/test
    改成:mongodb://yangdj:123456@127.0.0.1:27017/test
  2. mongo command not found
    注意:上面的安装方式是没有mongo shell的,因此无法通过mongo进入管理和设置。想要通过命令行来开启auth就搞不定了(通过安装studio 3T客户端来连接,在admin数据库下创建超级管理员也是可以的。如果想要停止mongodb,强行kill掉mongod可能导致数据异常,甚至无法启动,应使用命令use admin; db.shutdownServer();)
    可以通过brew来安装mongosh,安装命令为:brew install mongosh
    安装成功后,直接输入:mongosh(缺省掉的参数,对应完整命令为:mongosh "mongodb://localhost:27017")来进入数据库。连接上之后就是一个客户端了。
    关闭服务最好通过mongosh,执行:use admin; db.shutdownServer();

    开启认证后,mongosh重新连接的完整命令:
    mongosh "mongodb://mongodb0.example.com:28015" --username root --authenticationDatabase admin --password 123456
    其他可参考官方网站:https://www.mongodb.com/docs/mongodb-shell/connect/
  3. 想要复制一个数据库出来临时做测试
    找到网上说的db.copyDatabase结果提示函数不存在,搜到官网(https://www.mongodb.com/docs/manual/reference/method/db.copyDatabase/)说明:db.copyDatabase和copydb在新版早已deprecated了。需要使用mongodbdump和mongodbrestore(即备份和恢复命令来执行)。但直接使用这两个命令报命令不存在,因为我使用安装包的方式安装的,这些工具都不带(如果用brew安装mongo是否就一并安装了呢?待验证)
    行吧,直接搜官网去安装tools(https://www.mongodb.com/docs/database-tools/installation/installation-macos/),执行两个命令就ok了:
    brew tap mongodb/brew // 这个用来指定tools的代码源的,最好不要省略,不然可能会去安装homebrew/core下的
    brew install mongodb-database-tools // 安装完之后,就有这两个命令了
    先执行备份:

    mongodump -h 127.0.0.1 -d test -o ~/work --username root --authenticationDatabase admin --password 123456
    然后恢复到另一个新库:

    mongorestore -h 127.0.0.1 -d ktt ~/work/test --username root --authenticationDatabase admin --password 123456

     

    注意:如果没有开启auth验证,--username到最后的命令都不要,不然要报错的

  4. 通过服务器本机能连接,外网无法连接,telnet端口也不通
    a、首先看服务器防火墙,是否放开了连接端口
    b、mongod默认是设置了bind_ip为127.0.0.1,即:只有本机可以连接。需要放开这个配置,如果是通过conf文件启动的,则找到conf,一般在/etc/mongod.conf里。

     

     最开始的文件,bindIp是注释掉了的,我这里直接打开,并修改为0.0.0.0(即不限制连接机器)

    重启mongodb后即可。
posted @ 2022-09-07 16:43  流失的痕迹  阅读(1722)  评论(0编辑  收藏  举报