我有一个个人项目,其中 Openwrt + Python + SQLite 在一个几乎没有空间(16Mb)的小型路由器上运行。为了存储数据库,我使用连接到路由器的 USB/SD 卡。
我想定期获取数据库条目并将其存储在远程 MySQL Linux 服务器中,这样就可以释放一些空间。
这里最好的解决方案是什么?在路由器中实现 MySQL,以便 Linux 服务器可以远程连接到路由器并取出条目,或者只是下载 .db 文件并在 Linux 服务器中定期将其转换为 MySQL?还有其他想法吗?
答案1
尝试估计或计算一下,您真的会使用整个空间吗?出于某些营销原因,我们认为 8Mb 的可用空间确实很紧张(与可用硬盘的 TB 相比)。我发现 GL-AR150 上的家庭自动化将保留未来 5 年的数据。
在某些路由器上,可以添加 SD 卡、外部 USB 棒或 HDD。通常,我会通过触发器存储来自监控网络摄像头的一些快照。为什么不考虑将整个数据库托管在外部存储上呢?
如果您的数据量很小(两天内宽带没有达到 100%),您可以通过 cron 安排将数据上传到 Linux 服务器。基本上,脚本会调用远程 php 文件,该文件会从您的 sqlite db 获取数据并插入到 mysql db。之后,它会为上传的行设置一个标志,这样您下次就不必再获取它了。或者,如果您有 RTC,那么标志可能是您的路由器 Linux 日期时间,您会将其保存在 mysql db 中。