MAC系统下,mongodb启动异常。

1.MAC系统下,MongoDB的安装。

可以参考菜鸟教程里的安装攻略,Mac OSX 平台安装 MongoDB
(我使用的方法,是链接中提到的手动安装的方法,没使用brew)

2.启动MongoDB异常

2.1我遇到的问题:

打开一个命令窗口,输入以下命令:

sudo mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log

其中:sudo给与管理员权限,参数dbpath指定了数据的存放路径,而参数logpath指定了日志文件的路径。

但是出错了。

2.2 产生这个问题的原因

我在关闭电脑时,没有退出MongbDB数据库,而是直接把终端关闭了。在这种情况下,MongoDB属于异常关闭。当再次使用MongbDB时,就会产生异常。

可以看到在/usr/local/var/mongodb路径下,有一个文件,mongod.lock
在这里插入图片描述

2.3 如何解决这个问题

上文提到,在/usr/local/var/mongodb路径下,有一个文件,mongod.lock

2.3.1那么解决问题的第一步就是把这个文件删掉
cd /usr/local/var/mongodb # 进入mongod.lock所在文件夹
ls mongod.lock # 查看是否有这个文件
rm -rf mongod.lock # 删除该文件
ls mongod.lock # 查看是否删除
2.3.2第二步,重新执行以下命令
sudo mongod --dbpath /usr/local/var/mongodb --logpath /usr/local/var/log/mongodb/mongo.log

当出现下图,则说明mongod已经启动成功了。此时,它提示我们指定的log文件已存在,它自动的帮我们将文件加上时间进行重命名。
在这里插入图片描述

2.3.3第三步,打开一个新的终端窗口,执行以下命令
cd /usr/local/mongodb/bin # 进入mongodb的bin文件夹
./mongo # 启动一个mongo shell

该命令会打开一个mongo shell,我们就能够在shell中,对MongoDB数据库进行操作。

例如,可以使用以下命令,查看MongoDB的所有数据库名称。

show dbs # 输出数据库名称

以下就是2.3.3步骤的过程记录。

(base)  luonaer@luonaerdeMacBook-Pro  ~  cd /usr/local/mongodb/bin
(base)  luonaer@luonaerdeMacBook-Pro  /usr/local/mongodb/bin  ./mongo
MongoDB shell version v4.2.17
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1adc4b6f-ba86-4c78-890d-dd85f9f11bed") }
MongoDB server version: 4.2.17
Server has startup warnings:
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten]
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten]
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten] ** WARNING: This server is bound to localhost.
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten] **          Remote systems will be unable to connect to this server.
2021-11-25T09:56:15.092+0800 I  CONTROL  [initandlisten] **          Start the server with --bind_ip <address> to specify which IP
2021-11-25T09:56:15.093+0800 I  CONTROL  [initandlisten] **          addresses it should serve responses from, or with --bind_ip_all to
2021-11-25T09:56:15.093+0800 I  CONTROL  [initandlisten] **          bind to all interfaces. If this behavior is desired, start the
2021-11-25T09:56:15.093+0800 I  CONTROL  [initandlisten] **          server with --bind_ip 127.0.0.1 to disable this warning.
2021-11-25T09:56:15.093+0800 I  CONTROL  [initandlisten]
2021-11-25T09:56:15.093+0800 I  CONTROL  [initandlisten]
2021-11-25T09:56:15.093+0800 I  CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
---
Enable MongoDB's free cloud-based monitoring service, which will then receive and display
metrics about your deployment (disk utilization, CPU, operation statistics, etc).

The monitoring data will be available on a MongoDB website with a unique URL accessible to you
and anyone you share the URL with. MongoDB may use this information to make product
improvements and to suggest MongoDB products and deployment options to you.

To enable free monitoring, run the following command: db.enableFreeMonitoring()
To permanently disable this reminder, run the following command: db.disableFreeMonitoring()
---

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
news    0.006GB
test    0.000GB
>

2.4关闭MongoDB的方式

2.4.1在打开的第一个终端窗口中,输入中断命令ctrl-c

在这里插入图片描述

2.4.2在打开的第二个终端窗口中,输入以下命令
use admin # 使用amdin数据库
db.shutdownServer() # 关闭服务

如下图所示,直接执行命令db.shutdownServer()会出错。原因是,db.shutdownServer()只能在admin数据库中使用。在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值