如何通过IntelliJ IDEA Database客户端访问EC2实例上的SQLite数据库
通过IDEA Database工具访问EC2上SQLite数据库的操作方案
SQLite是基于本地文件的进程内数据库,本身不提供TCP监听端口,因此无法直接像MySQL/PostgreSQL那样仅通过SSH端口隧道连接,可通过以下两种方案实现需求:
方案一:SSHFS挂载远程目录(推荐,操作成本最低)
该方案不需要在EC2上额外部署服务,仅依赖EC2已有的SSH服务:
- 本地安装SSHFS工具:
- Windows:安装WinFsp + SSHFS-Win组件
- macOS:通过Homebrew执行
brew install macfuse sshfs完成安装 - Linux:直接通过系统包管理器安装
sshfs安装包即可
- 执行挂载命令,将EC2上存放
db.sqlite3的目录映射到本地空目录,示例命令:
若EC2的SSH端口不是默认22,可添加sshfs ec2-user@<EC2公网IP>:/remote/path/to/sqlite_dir /local/empty/mount_dir-p <自定义SSH端口>参数 - 打开IDEA Database工具,新建SQLite连接,File路径直接选择本地挂载目录下的
db.sqlite3文件,后续操作和访问本地SQLite完全一致 - 使用结束后可执行
umount /local/empty/mount_dir(macOS/Linux)或者右键点击挂载的盘符选择卸载(Windows)解除目录映射
方案二:EC2部署SQLite TCP代理 + SSH端口转发
适合需要长期访问远程SQLite的场景:
- 在EC2实例上安装SQLite TCP代理工具,可选
sqld(libsql官方推出的SQLite服务端)或者轻量的sqlite3-proxy - 启动代理服务,仅监听EC2本地回环地址避免公网暴露,同时指定要访问的SQLite文件路径,以sqld为例启动命令为:
sqld --db-path /remote/path/to/db.sqlite3 --http-listen-addr 127.0.0.1:8080 - 回到IDEA Database工具,新建对应代理的数据库连接(比如sqld选libsql驱动),开启「Use SSH tunnel」功能,填写EC2的SSH连接参数,配置本地端口转发到EC2的8080端口
- 连接地址填写
http://127.0.0.1:8080即可完成连接
注意事项
- 方案一的目录挂载是实时双向同步的,修改操作会直接作用于EC2上的原数据库文件,操作前建议提前备份数据库文件
- 方案二需要保证EC2上的代理服务处于运行状态,禁止代理对公网开放端口,避免数据泄露
内容的提问来源于stack exchange,提问作者Mohit Kumar
相关产品推荐
相关产品推荐

