首页 > 解决方案 > Node-Red 无法打开 SQLite 数据库

问题描述

我正在尝试从 Node-Red 访问 SQLite 数据库。Node-Red 无法打开数据库。我的操作系统是 Ubuntu 18.04.3。

下面提供了我的流程和 SQLite 节点定义。注入和调试节点只有默认值。我保持它非常简单,因为这是我第一次尝试使用 Node-Red 的 SQLite。

在此处输入图像描述 在此处输入图像描述

当我部署我的流程时,我收到以下错误:

在此处输入图像描述

db 对所有用户都具有读写执行权限。它在我的机器上是本地的,我是唯一使用它的人。

知道可能导致问题的原因吗?

标签: sqlitenode-red

解决方案


好吧,这就是我解决问题的方法。

我在打开 .csv 文件时也遇到了问题。通过查看其他类似的帖子,这似乎是一个无法解决的用户权限问题,即使通过更改文件权限chmod

我已经使用不同的介质安装了所有节点组件:

  • 命令行中的 nodejs 和 npm
  • 来自 Ubuntu 软件中心的 node-red
  • node-red-dashboard 和 node-red-node-sqlite 来自 node-red 浏览器。

这些不同的安装介质可能会导致权限问题。所以我卸载了所有东西。

然后我从命令行重新安装了所有内容。节点包是全局安装的(即带有“-g”属性):

sudo apt install nodejs
sudo apt install npm
sudo npm install -g node-red
sudo npm install -g node-red-dashboard
sudo npm install -g node-red-node-sqlite

然后我确认 npm 可以将所有内容视为全局包:

sudo npm list -g --depth 0

在此处输入图像描述

我现在在 shell 中启动 node-red:

node-red

然后转到浏览器并键入:

localhost:1880

节点红色浏览器加载,所有仪表板和 sqlite 节点都可用,我能够读取 sqlite 和 csv 文件。

*** 关于安装 node-red 子包的注意事项 ***

可以从 npm 或 node-red 浏览器安装 Node-red 子包(node-red-dashboard、node-red-node-sqlite...)。

但是我注意到了一些事情:

  • 键入时不会显示从浏览器安装的子包npm list -g --depth 0

  • 安装的子包sudo npm -g <sub-package>将显示为npm list -g --depth 0.

  • 浏览器中列出的软件包不会全部显示为 command npm list <package>

所以我决定安全起见,用npm list. 首先,我在 node-red 浏览器调色板列表中搜索我的子包,检索子包名称,然后使用sudo npm -g <sub-package>.

一致性解决了这个问题:将 shell 中的所有内容都安装为全局包。


推荐阅读