MacOS 安装配置MongoDB

  • 一、MongoDB下载与安装
  • 二、MongoDB配置与启动
  • 方法1:直接配置
  • 方法2:写入配置文件
  • 三、关闭MongoDB服务
  • 四、报错解决
  • 查看报错信息
  • 报错:
  • 1. 启动报错返回14
  • 2. 启动报错返回1
  • 3. 启动报错返回48
  • 4. 找不到mongo命令
  • 参数说明
  • 参考资料
  • 五、Studio 3T连接MongoDB
  • 5.1 连接admin用户
  • 5.2 连接新用户



一、MongoDB下载与安装

  1. 官网下载

https://www.mongodb.com/download-center/community

mac安装mongodb并使用 mac mongodb安装_配置文件

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

mac安装mongodb并使用 mac mongodb安装_mac安装mongodb并使用_02

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

mac安装mongodb并使用 mac mongodb安装_配置文件_03

并重命名为mongodb

mac安装mongodb并使用 mac mongodb安装_数据库_04


二、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

mac安装mongodb并使用 mac mongodb安装_mongodb_05

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

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

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

mac安装mongodb并使用 mac mongodb安装_macos_06

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

mongo

mac安装mongodb并使用 mac mongodb安装_macos_07

方法2:写入配置文件

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

mac安装mongodb并使用 mac mongodb安装_配置文件_08

  1. 启动mongodb

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

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

mac安装mongodb并使用 mac mongodb安装_macos_09

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

mongo

mac安装mongodb并使用 mac mongodb安装_mac安装mongodb并使用_10


三、关闭MongoDB服务

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

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

use admin

关闭服务

db.shutdownServer({force:true});

退出终端

exit

control+c一下

mac安装mongodb并使用 mac mongodb安装_macos_11

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

mongod

mac安装mongodb并使用 mac mongodb安装_mac安装mongodb并使用_12


四、报错解决

查看报错信息

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

mac安装mongodb并使用 mac mongodb安装_macos_13


或者:

#在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 进程号

mac安装mongodb并使用 mac mongodb安装_数据库_14

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

mac安装mongodb并使用 mac mongodb安装_mongodb_15


mac安装mongodb并使用 mac mongodb安装_macos_16


参数说明

  • 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上创建链接

mac安装mongodb并使用 mac mongodb安装_数据库_17

mac安装mongodb并使用 mac mongodb安装_数据库_18

mac安装mongodb并使用 mac mongodb安装_macos_19

mac安装mongodb并使用 mac mongodb安装_配置文件_20

mac安装mongodb并使用 mac mongodb安装_macos_21

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上创建链接

mac安装mongodb并使用 mac mongodb安装_mac安装mongodb并使用_22

mac安装mongodb并使用 mac mongodb安装_数据库_23

mac安装mongodb并使用 mac mongodb安装_mac安装mongodb并使用_24