MacOS 安装配置MongoDB


一、MongoDB下载与安装

  1. 官网下载

https://www.mongodb.com/download-center/community
在这里插入图片描述

  1. 进入访达 -> shift + command + g -> /usr/local

在这里插入图片描述

  1. 解压官网下载的tgz压缩包,把文件夹拖进/usr/local里面

在这里插入图片描述

并重命名为mongodb

在这里插入图片描述


二、MongoDB配置与启动

方法1:直接配置

  1. 打开终端输入:
open -e .bash_profile
  1. 在.bash_profile文件中加入:
export PATH=${PATH}:/usr/local/mongodb/bin
  1. command+s保存

  2. 重启.bash_profile使配置生效

source .bash_profile
  1. 查看mongod版本,出现版本号即安装成功
mongod -version

在这里插入图片描述

  1. 进入mongodb文件夹下,创建data和log文件夹
cd /usr/local/mongodb
mkdir data log
  1. 启动mongodb

执行命令启动,出现successfully即启动成功

mongod --dbpath data --logpath log/mongod.log --logappend --fork

在这里插入图片描述

执行mongo命令,进入mongodb,出现箭头即成功

mongo

在这里插入图片描述

方法2:写入配置文件

  1. 进入mongodb文件夹下,创建etc文件夹
cd /usr/local/mongodb
mkdir etc
  1. 进入etc文件夹下,新建mongodb.conf配置文件
cd etc
vim mongodb.conf
  1. 写入配置信息:i 进入编辑模式,esc :wq保存

在这里插入图片描述

  1. 启动mongodb

执行命令启动,出现successfully即启动成功

mongod -f /usr/local/mongodb/etc/mongodb.conf

在这里插入图片描述

执行mongo命令,进入mongodb,出现箭头即成功

mongo

在这里插入图片描述


三、关闭MongoDB服务

不正常关闭mongodb可能会导致下次启动的时候报错

使用系统admin数据库,只有在admin数据库中才可以进行关闭服务

use admin

关闭服务

db.shutdownServer({force:true});

退出终端

exit

control+c一下

在这里插入图片描述

检查MongoDB是否关闭,看到最后的"msg":"Shutting down"即关闭成功

mongod

在这里插入图片描述


四、报错解决

查看报错信息

mongod

报错:

1. 启动报错返回14

(base) money@moneydeMacBook-Air ~ % mongod --dbpath data --logpath log/mongod.log --logappend --fork
about to fork child process, waiting until server is ready for connections.
forked process: 4152
ERROR: child process failed, exited with 14
To see additional information in this output, start without the "--fork" option.

mongod检查:/tmp/mongodb-27017.sock 文件操作权限不足

"msg":"Failed to unlink socket file", "attr":{"path":"/tmp/mongodb-27017.sock", "error":"Permission denied"

解决: 进入文件目录,删除文件

cd /tmp
rm -rf mongodb-27017.sock

2. 启动报错返回1

(base) money@moneydeMacBook-Air ~ % mongod -f /usr/local/mongodb/etc/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 24432
ERROR: child process failed, exited with 1
To see additional information in this output, start without the "--fork" option.

mongod检查:找不到文件 /data/db

"attr":{"error":"NonExistentPath: Data directory /data/db not found...

解决: 检查配置文件

cd /usr/local/mongodb/etc
vim mongodb.conf
port=27017
dbpath=/usr/local/mongodb/data
logpath=/usr/local/mongodb/log/mongod.log
logappend=true
fork=true

在这里插入图片描述
或者:

#在data下新建db文件夹
cd /usr/local/mongodb/data
mkdir db
#修改配置文件
cd ..
cd etc
vim mongodb.conf
#配置文件的dbpath加上db
(base) money@moneydeMacBook-Air etc % cat mongodb.conf
port=27017
dbpath=/usr/local/mongodb/data/db
logpath=/usr/local/mongodb/log/mongod.log
logappend=true
fork=true
#启动mongodb
mongod --dbpath data/db --logpath log/mongod.log --logappend --fork

3. 启动报错返回48

(base) money@moneydeMacBook-Air ~ % ...
about to fork child process, waiting until server is ready for connections.
forked process: ...
ERROR: child process failed, exited with error number 48
To see additional information in this output, start without the "--fork" option.

解决: 删除data和log生成的所有文件,直接重建data和log文件夹,不要给文件夹赋予读写权限 (eg. sudo chown money /usr/local/mongodb/data)

其他报错也能试试

#mongodb里面的数据会被清空(尽量不要用,但有效)
cd /usr/local/mongodb
rm -rf data
rm -rf log
mkdir data log

或者:

#端口被某个进程占用
lsof -i:端口号
kill -9 进程号

在这里插入图片描述

4. 找不到mongo命令

(base) money@moneydeMacBook-Air ~ % mongo
zsh: command not found: mongo

进入访达 -> shift + command + g -> /usr/local/mongodb/bin

6.0.1 版本的 MongoDB 缺少mongo客户端

解决: 下载低版本的MongoDB
在这里插入图片描述
在这里插入图片描述


参数说明

  • port:配置端口号,27017是默认端口
  • dbpath:配置数据存放的位置
  • logpath:配置日志存放的位置
  • logappend:日志使用追加的方式
  • fork:数据库服务放后台运行
  • mongo:客户端
  • mongod:系统的主要后台进程
  • mongos:操纵客户端请求的路由进程

参考资料

1. macOS下mongoDB的安装全过程
2. Mac中mongodb安装配置及说明


五、Studio 3T连接MongoDB

5.1 连接admin用户

先在终端启动mongodb

mongod --dbpath data/db --logpath log/mongod.log --logappend --fork
mongo

Studio 3T上创建链接
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.2 连接新用户

关闭现有的数据库服务

use admin
db.shutdownServer()
exit

终端启动mongodb, 并创建新用户。

mongod --dbpath data/db --logpath log/mongod.log --logappend --fork
mongo

创建新用户

db.createUser({user:'新用户名',pwd:passwordPrompt(),roles:[{role:'权限',db:'权限作用在哪个数据库'}]})

eg.

#创建新用户menmen
db.createUser({user:'menmen',pwd:passwordPrompt(),roles:[{role:'read',db:'admin'}]})
Enter password: 输入密码
... ...

#查看用户信息
db.getUser('menmen')
... ...

使用新用户登录mongodb

mongod --dbpath data/db --logpath log/mongod.log --logappend --fork
mongo --port 27017 -u 'menmen' --authenticationDatabase 'admin' -p
Enter password: 输入密码

进行身份验证 (show dbs时会受到限制)

use admin
db.auth('用户名','密码')  #返回1说明验证成功,0为失败

Studio 3T上创建链接
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值