sqlite - Node-Red 无法打开 SQLite 数据库
问题描述
我正在尝试从 Node-Red 访问 SQLite 数据库。Node-Red 无法打开数据库。我的操作系统是 Ubuntu 18.04.3。
下面提供了我的流程和 SQLite 节点定义。注入和调试节点只有默认值。我保持它非常简单,因为这是我第一次尝试使用 Node-Red 的 SQLite。
当我部署我的流程时,我收到以下错误:
db 对所有用户都具有读写执行权限。它在我的机器上是本地的,我是唯一使用它的人。
知道可能导致问题的原因吗?
解决方案
好吧,这就是我解决问题的方法。
我在打开 .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 中的所有内容都安装为全局包。
推荐阅读
- php - 我在 AWS linux 2 上设置弹性 bean stalk 时遇到问题。这是一个以 Postgres 作为数据库的 laravel 应用程序。用户密码验证失败
- android - Viewstub:如何使用两种方式数据绑定,文本不变
- redux - 当我们使用 React 在表单中选择单个产品时,如何绑定或填充复选框和单选按钮值
- python - Python 记录器的类型注释
- c++ - 有没有办法初始化动态创建的二维数组
- mql4 - 计算找到利润点。MQL4
- python - 如果在数据库中找不到数据,Flask 会生成 404 页面
- java - Spring Undertow Scaling - 在 Kubernetes 负载测试期间“到许多打开的文件”
- wallet-connect - WalletConnect 禁用 infura 错误消息
- android - 通过活动传递输入