帮助中心
数据库异常导致 SRD 无法正常运行

SRD 使用的数据库位 MongoDB 。
安装 MongoDB 的教程,详见左侧目录中的《安装教程》。

1、数据库未启动

【问题描述】
数据库未启动,导致 SRD 无法启动,或者无法正常运行,具体情况可分为:

  • SRD 启动之前,数据库就没有启动。
  • SRD 启动之后(即运行过程中),数据库被关闭了。

【判断条件】

  • 数据库在 SRD 运行之前就没有启动。这个时候 SRD 会被立即终止。

日志文件中能搜索到关键词“Exception in thread "main" com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect.”,如下图所示:

  • 数据库在 SRD 运行时被终止了。此时 SRD 不会被立即终止,但是已经无法正常运行了。

日志文件中能搜索到以下关键词:

  • org.mongodb.driver.connection - Got socket exception on connection ...... to localhost:27017. All connections to localhost:27017 will be closed.

  • com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting to connect.


可根据 验证数据库是否已启动 查看数据库的运行状态。

【解决办法】
可通过以下指令,尝试重启数据库(服务)。

shell
sudo systemctl start mongod.service
1

执行成功之后,再通过指令确认以下数据库(服务)的状态。

shell
sudo systemclt status mongo.service
1

这个两个指令输入完毕之后,结果如下图所示,可根据 状态说明 来判断数据库(服务)的状态。
当数据库服务处于运行状态(即 active (running) )时,SRD 就能正常运行了。

验证数据库是否已启动

Windows 系统

打开任务管理器(快捷键为 Ctrl + Shift + Esc),在服务标签页中,找到名称为 MongoDB 的服务,可通过键盘输入首字母 M 快速定位服务名称的首字母为 M 的服务,结果如下图所示。

  • 状态为“正在运行”时,表示 MongDB 正常运行。
  • 状态为“已停止”,则说明 MongoDB 已经停止运行了。

Linux 系统

在 Terminal 中输入以下指令,可以查看 MongoDB 的运行状态。

shell
sudo service mongod status
1

也可以通过这条指令查看 MongoDB 的运行状态。两条指令的结果是一样的,指令1其实就是在调用指令2。

shell
sudo systemctl status monngod.service
1

查询到的结果如下图所示:

状态说明

其中 Active 字段描述的是 MongoDB 的运行状态:

  • active (running) :表示 MongoDB 正在运行。

  • inactive (dead):表示 MongoDB 已经停止运行了。

  • failed (xxxxxx):表示 MongoDB 启动失败,或者运行过程中异常结束了。

最近更新 2022/11/28
文章内容

1、数据库未启动

验证数据库是否已启动

Windows 系统

Linux 系统