MacOS 安装配置MongoDB
- 一、MongoDB下载与安装
- 二、MongoDB配置与启动
- 方法1:直接配置
- 方法2:写入配置文件
- 三、关闭MongoDB服务
- 四、报错解决
- 查看报错信息
- 报错:
- 1. 启动报错返回14
- 2. 启动报错返回1
- 3. 启动报错返回48
- 4. 找不到mongo命令
- 参数说明
- 参考资料
- 五、Studio 3T连接MongoDB
- 5.1 连接admin用户
- 5.2 连接新用户
一、MongoDB下载与安装
- 官网下载
https://www.mongodb.com/download-center/community
- 进入访达 ->
shift + command + g
->/usr/local
- 解压官网下载的tgz压缩包,把文件夹拖进/usr/local里面
并重命名为mongodb
二、MongoDB配置与启动
方法1:直接配置
- 打开终端输入:
open -e .bash_profile
- 在.bash_profile文件中加入:
export PATH=${PATH}:/usr/local/mongodb/bin
- command+s保存
- 重启.bash_profile使配置生效
source .bash_profile
- 查看mongod版本,出现版本号即安装成功
mongod -version
- 进入mongodb文件夹下,创建data和log文件夹
cd /usr/local/mongodb
mkdir data log
- 启动mongodb
执行命令启动,出现successfully即启动成功
mongod --dbpath data --logpath log/mongod.log --logappend --fork
执行mongo命令,进入mongodb,出现箭头即成功
mongo
方法2:写入配置文件
- 进入mongodb文件夹下,创建etc文件夹
cd /usr/local/mongodb
mkdir etc
- 进入etc文件夹下,新建mongodb.conf配置文件
cd etc
vim mongodb.conf
- 写入配置信息:
i
进入编辑模式,esc
:wq
保存
- 启动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上创建链接