嵌入式数据库(SQLite 是嵌入式数据库,无法网络直接“挂载”)

嵌入式数据库(SQLite 是嵌入式数据库,无法网络直接“挂载”)
SQLite 是嵌入式数据库,无法网络直接“挂载”

SQLite 是一个嵌入式数据库,它的设计初衷是读取本地文件系统。jdbc:sqlite:/path/to/file.db 中的路径指的是运行 DBeaver 的那台电脑(你的本机)的路径,而不是远程服务器的路径。JDBC 驱动无法通过网络直接“挂载”远程文件进行读写(这样做极不稳定且容易损坏数据库)。

要连接另一台电脑上的 SQLite 数据库,你有以下 3 种可行方案,按推荐程度排序:


方案一:在远程电脑上启动 Web 服务(最推荐,无需配置复杂网络)

如果那台远程电脑可以运行程序,最简单的方法是在上面运行一个轻量级的 Web 服务器(如 LiteFS, Datasette, 或简单的 Python 脚本),将 SQLite 数据通过 HTTP/API 暴露出来。但如果你只是想用 DBeaver 管理,更常见的做法是:

使用 SSH 隧道 + 本地映射(如果远程是 Linux/Mac)
如果远程电脑是 Linux 或 Mac,并且你可以通过 SSH 连接它:

  1. 不要直接连文件。
  2. 在 DBeaver 创建连接时,选择 SQLite
  3. 点击连接设置中的 SSH 标签页。
  4. 勾选 Use SSH Tunnel,填写远程电脑的 IP、用户名、密码/密钥。
  5. Database 标签页的 File 路径中,填写远程电脑上的绝对路径(例如 /home/user/data.db)。原理:DBeaver 会通过 SSH 隧道将远程文件“映射”到本地临时空间进行读写。这是官方支持的最佳远程访问方式。

方案二:将文件共享为网络驱动器(仅限局域网,有风险)

如果两台电脑在同一局域网(LAN),你可以将远程电脑的文件夹共享,映射为本地的一个盘符,然后让 DBeaver 认为它是本地文件。

步骤:

  1. 在远程电脑上:右键点击存放 .db 文件的文件夹 -> 属性 -> 共享 -> 设置共享权限。
  2. 在你的电脑(DBeaver 所在电脑)上Windows: 打开“此电脑” -> “映射网络驱动器”,输入 \\远程IP\共享文件夹,将其映射为一个盘符(例如 Z: 盘)。Mac: Finder -> 前往 -> 连接服务器 (smb://远程IP/共享文件夹)。
  3. 在 DBeaver 中:连接类型选 SQLite。文件路径填写映射后的本地路径,例如:jdbc:sqlite:Z:/data/mydb.db。

⚠️ 严重警告

  • 数据损坏风险:SQLite 对文件锁非常敏感。通过网络共享(SMB/NFS)访问 SQLite 文件极易导致数据库锁定失败文件损坏,尤其是在多用户同时写入时。
  • 性能差:每次查询都要通过网络传输数据块,速度很慢。
  • 仅建议:仅在只读查询或单人临时维护时使用,严禁用于生产环境的高频写入。

方案三:将数据库文件复制到本地(最安全,适合一次性导入/导出)

如果你只是为了执行之前的“导入 CSV”操作或查看数据,不需要实时同步远程变化:

  1. 复制文件:通过 SCP, SFTP, 共享文件夹或 U 盘,将远程电脑上的 xxx.db 文件下载/复制到你自己的电脑本地(例如桌面)。
  2. 在 DBeaver 中连接:路径填写本地路径:jdbc:sqlite:C:/Users/YourName/Desktop/xxx.db。
  3. 操作:执行你的导入、查询、修改操作。
  4. 同步回远程(如果需要):操作完成后,再将修改后的 .db 文件上传覆盖回远程电脑。

总结建议

场景

推荐方案

操作方法

远程是 Linux/Mac,且有 SSH

嵌入式数据库(SQLite 是嵌入式数据库,无法网络直接“挂载”)

SSH 隧道 (最佳)

DBeaver 连接设置 -> 开启 SSH Tunnel -> 填远程路径。

只是临时查数据或导入 CSV

复制到本地 (最稳)

把文件拷过来 -> 本地操作 -> 拷回去。

必须实时远程访问且无 SSH

网络共享 (高风险)

映射网络驱动器 (Z:) -> 指向 Z 盘路径。慎用写入操作!

生产环境多人使用

更换数据库

SQLite 不适合网络并发。建议迁移到 PostgreSQL 或 MySQL,它们原生支持网络连接 (jdbc:postgresql://ip:port/db)。

针对你之前的导入需求:
强烈建议使用 方案三(复制到本地)

  1. 把远程的 .db 文件拷到你电脑。
  2. 在本地用 DBeaver 连接这个本地副本。
  3. 执行 CSV 导入(解决 Unique 约束问题)。
  4. 确认无误后,把新的 .db 文件传回远程电脑覆盖原文件。
    这样既避免了网络锁死问题,又保证了数据导入的稳定性。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

最新文章

热门文章

本栏目文章