【发布时间】:2021-07-29 12:14:36
【问题描述】:
我查看了这方面的几个主题并尝试了各种建议的解决方案 (here for instance),但我仍然无法打开我的 sqlite 数据库。
它曾经运行顺利,但最近(我无法确定何时)我得到了错误:
Sqlite3, OperationalError: unable to open database file
当前设置:数据库位于通过 USB 连接到 mac mini 的外部硬盘上。我使用 macbook pro 通过以太网连接到这个 mac mini“服务器”。在我的 macbook pro 中,以下代码返回错误:
import sqlite3 as sq3
import os
filename = '/Volumes/AGCM_DB/Database/AGCM.db'
conn = sq3.connect(filename)
我尝试了什么:
-
直接从 mac mini 运行代码可以正常工作
-
如果我将数据库复制/粘贴到我的 macbook pro 上,运行代码可以正常运行。
-
外置硬盘、macbookpro 和 mac mini 上有足够的可用空间
-
从我的 macbook pro,我跑了
打印(os.path.exists(文件名))
返回 True 以便我的 macbook pro 通过 mac mini“看到”外部硬盘驱动器上的文件。
我检查了文件夹数据库和文件 AGCM.db 的权限,我的 macbook pro 具有读写权限。
我的猜测是我在某处遗漏了一些许可(但在哪里?)。
Mac Mini:OS High Sierra Macbook pro:OS Big Sur
编辑:我对读取“.csv”文件进行了另一次测试并收到错误“不允许操作”所以这告诉我我有权限问题,这不是 sqlite 问题
【问题讨论】:
-
macbookpro是如何访问db文件的?它是如何安装的?我对此有点困惑。
-
macbook 通过以太网电缆连接到我的本地网络,mac mini 也是如此。硬盘通过USB线连接到mac mini
-
对,但是macbook pro如何访问连接到mac mini的外置硬盘上的文件?
-
在 mac mini 共享菜单上,我检查了 Screen Sharing/File Sharing with Read&Write(共享文件夹是 mac mini 和外置硬盘)
-
@Hotone 即使您已经/确实可以使用此功能,也不建议让 SQLite 进程通过网络访问数据库文件。例如,参见How to Corrupt,特别是第 2 节,文件锁定问题。
标签: python-3.x macos sqlite