UniFi - 控制器无法启动问题


概述


本文介绍了 UniFi 控制器启动失败的可能原因和解决方案。

注意:在进行故障排除之前, 请确认已遵循《 UniFi用户指南》中软件安装的步骤和要求。

目录


  1. Windows 路径文件用户名具有特殊字符
  2. 所需端口被占用
  3. Java 不兼容
  4. 存储空间不足
  5. 数据库损坏
  6. 不兼容的 MongoDB 版本
  7. Related Articles

Windows 路径文件用户名具有特殊字符


回到顶部

问题: The controller's database (mongo) will not start because it cannot find a file. (控制器的数据库(mongo)无法启动,因为找不到文件。 )

解决方案: 确保路径文件夹为不包含特殊字符的纯英文路径(即用户名设置为纯英文)。


所需端口被占用


回到顶部

问题: Ports needed by UniFi are being used by other programs.(UniFi 所需的端口正被其他程序使用。)

解决方案: 按照以下步骤更改端口。

1. 进入 UniFi 安装路径,打开 <unifi_base>/logs/server.log

注意: <unifi_base> 的路径将取决于您的操作系统。您可以参考 本文获取更多信息
[2011-06-01 22:09:14,145] <UniFi> ERROR StandardServer - StandardServer.await: create[8081]:

2.可能会出现类似于以下的错误:

java.net.BindException: Address already in use: JVM_Bind
 at java.net.PlainSocketImpl.socketBind(Native Method)
 ...

3. 参考以下文章,更改 UniFi 控制器使用的端口:  UniFi - 更改控制器和 UAP 的默认端口


Java 不兼容


回到顶部

问题:  目前,UniFi 控制器不支持 Java 9。请使用 Java8。可以在我们的“ 下载”页面上找到该 Controller 软件的发行说明以及下载链接。

解决方案: 确保在计算机上安装了正确的 Java 版本(64位)。从 UniFi 控制器 5.10.12 开始,由于仅支持 64 位 WebRTC 库,因此必须使用 x64 Java。


存储空间不足


回到顶部

问题: 数据保留时间可能设置得太久,导致主机没有足够的存储空间来存储新数据。如果数据库无法为新信息分配存储空间,UniFi 网络控制器可能会发生故障。

这种情况可以在 mongo.log 文件中生成日志,如下所示:

Wed Nov 21 10:11:54.435 [initandlisten] ERROR: Insufficient free space for journal files
注意:mongo.log 的位置会因您的操作系统而异。您可以参考本文了解更多信息。

解决方案: 您可以参考  UniFi - 如何删除或修剪旧数据并调整 Mongo 数据库大小 此文。文章中包括用于数据库清理和还原的脚本以及如何使用。


数据库损坏


回到顶部

问题: 数据库损坏可能导致 Controller 无法读取数据库文档的状态。通常,这会在 mongo.log 或 server.log 中显示报错。数据库错误也可能将多种 Java 错误显示在 server.log 中。

可以在<unifi_base> / logs 中找到名为 server.log 的文件。

注意: <unifi_base> 的路径将取决于您的操作系统。您可以参考 本文获取更多信息

可以在 server.log 中如下所示

[2018-11-21 19:36:08,379] <launcher> INFO db - Connecting to mongodb://127.0.0.1:27117
[2018-11-21 19:36:09,949] <db-server> ERROR system - [exec] error, rc=100

解决方案: 下面的文章将解释如何减轻数据库损坏:  UniFi - 修复 UniFi Controller 数据库


不兼容的 MongoDB 版本


回到顶部

问题: 对于在基于 Debian 的 Linux 主机上进行安装的用户,通常会出现此问题。在较新的 Ubuntu 版本(例如 18.04)中,UniFi 控制器不支持自带的 MongoDB 3.6。 

解决方案:使用受支持的 MongoDB 版本。要检查安装的 MongoDB 版本,请在终端或 CLI 中使用以下命令:

mongod --version

相关文章


回到顶部

UniFi-<unifi_base>在哪里?

UniFi - 更改控制器和 UAP 的默认端口

UniFi - 如何删除或修剪旧数据并调整 Mongo 数据库大小

UniFi - 修复 UniFi Controller 数据库