【问题标题】:Sqlite3, OperationalError: unable to open database file on mac OS, external harddrive dbSqlite3,OperationalError:无法在 Mac OS、外部硬盘驱动器上打开数据库文件
【发布时间】: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


【解决方案1】:

好的,我通过尝试将 macbook pro 命令行中的文件简单复制/粘贴到外部驱动器来解决这个问题

cp <source> <destination>

它奏效了。因此,我的 python 编辑器缺少权限:我在 macbook pro 上授予了对 PyCharm 的完整磁盘访问权限,现在我在外部硬盘驱动器中获得了所需的目录列表,并且还可以访问其上的数据库。

【讨论】:

    猜你喜欢
    • 2011-12-01
    • 2011-06-05
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多