我正在尝试从Node-Red访问SQLite数据库。 Node-Red无法打开数据库。我的操作系统是Ubuntu 18.04.3。
下面提供了我的流程和SQLite节点定义。注入和调试节点仅具有默认值。我将其保持非常简单,因为这是我第一次尝试使用Node-Red使用SQLite。
部署流程时,出现以下错误:
该数据库具有所有用户的读写执行特权。它是我机器上的本地机器,并且是我唯一使用它的机器。
任何想法可能是导致问题的原因吗?
答案 0 :(得分:0)
好的,这就是我解决问题的方式。
我也无法打开.csv文件。通过查看其他类似的帖子,即使使用chmod
更改文件权限,似乎也无法解决用户权限问题。
我已经使用不同的介质安装了所有节点组件:
这些不同的安装介质可能会导致特权问题。所以我卸载了所有内容。
然后我从命令行重新安装了所有内容。节点软件包已全局安装(即具有“ -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文件。
***有关安装节点红色子软件包的注意事项***
可以从npm或从节点红色浏览器安装节点红色子软件包(node-red-dashboard,node-red-node-sqlite等)。
但是我注意到一些事情:
在键入npm list -g --depth 0
时,不会显示从浏览器安装的子软件包。
安装有sudo npm -g <sub-package>
的子软件包将显示为npm list -g --depth 0
。
软件包不会全部显示在命令npm list <package>
下。
因此,我决定安全使用它,并使用npm list
安装我所有的节点红色子软件包。首先,我在节点红色浏览器目录列表中搜索我的子软件包,检索子软件包名称,然后使用sudo npm -g <sub-package>
从外壳安装它。
一致性解决了这个问题:将外壳程序中的所有内容安装为全局软件包。