fdb2
v1.0.6
Published
一款轻量级、跨平台的数据库管理工具,支持多种数据库类型,提供类似 Navicat Premium 的使用体验。
Readme
数据库管理工具
一款轻量级、跨平台的数据库管理工具,支持多种数据库类型,提供类似 Navicat Premium 的使用体验。
快速开始
安装
# 全局安装(推荐)
npm install -g fdb2
# 或使用 yarn
yarn global add fdb2
# 或使用 pnpm
pnpm add -g fdb2启动服务
# 启动数据库管理工具
fdb2 start
# 停止服务
fdb2 stop
# 查看服务状态
fdb2 status
# 重启服务
fdb2 restart访问应用
启动服务后,在浏览器中打开:
http://localhost:3000功能特性
🔗 连接管理
- 支持 8 种数据库类型:MySQL、PostgreSQL、SQLite、SQL Server、Oracle、CockroachDB、MongoDB、SAP HANA
- 可视化连接配置界面,操作简单直观
- 一键测试连接,快速验证配置
- 连接信息本地安全存储,无需重复输入
🏗️ 数据库结构
- 清晰的数据库信息概览
- 详细的表结构查看
- 完整的列信息、索引、外键关系展示
- 实时显示数据库大小和统计信息
📊 数据操作
- 表数据快速查看和分页浏览
- 灵活的条件查询和排序
- 便捷的数据插入、编辑、删除
- 支持导出数据为 JSON、CSV 格式
💻 SQL查询
- 代码编辑器风格的 SQL 输入框
- SQL 语法格式化,提升可读性
- 自动保存查询历史记录
- 批量查询结果展示
🎯 核心优势
- 零配置启动:全局安装后即可使用,无需复杂配置
- 跨平台支持:Windows、macOS、Linux 全平台兼容
- 轻量高效:基于 Node.js,资源占用低
- 本地存储:数据保存在本地,安全可靠
- 离线使用:无需联网即可管理本地数据库
使用指南
添加数据库连接
- 打开浏览器访问
http://localhost:3000 - 点击左侧导航的"连接管理"
- 点击"新增连接"按钮
- 填写连接信息:
- 连接名称:自定义名称,便于识别(如:生产环境 MySQL)
- 数据库类型:选择对应的数据库类型
- 主机地址:数据库服务器地址(本地数据库使用
localhost或127.0.0.1) - 端口:数据库服务端口(会自动填充默认端口)
- 数据库名称:要连接的数据库名
- 用户名/密码:数据库认证信息
- 点击"测试连接"验证配置是否正确
- 保存连接配置
查看数据库结构
- 在左侧导航选择"数据库结构"
- 选择已配置的数据库连接
- 选择要查看的数据库
- 浏览表列表和详细信息:
- 表基本信息:行数、大小等统计信息
- 列定义:数据类型、约束、默认值等
- 索引信息:主键、唯一索引、普通索引
- 外键关系:表之间的关联关系
查看和编辑表数据
- 在表列表中点击"数据"按钮
- 设置查询条件:
- WHERE 条件:输入过滤条件(如:
id > 100) - 排序字段:指定排序方式(如:
create_time DESC) - 每页显示:调整分页大小(10/50/100/500)
- WHERE 条件:输入过滤条件(如:
- 点击"查询"按钮执行查询
- 支持的操作:
- 查看详情:点击行查看完整数据
- 编辑记录:修改数据后保存
- 删除记录:删除不需要的数据
- 插入新数据:点击"新增"按钮添加数据
- 导出数据:选择 JSON 或 CSV 格式导出
执行 SQL 查询
- 点击左侧导航的"SQL 查询"
- 选择数据库连接
- 在编辑器中输入 SQL 语句
- 快捷操作:
- Ctrl + Enter(Windows)或 Cmd + Enter(Mac):快速执行
- 点击"格式化"按钮:美化 SQL 语句
- 查看历史记录:点击历史记录按钮选择之前的查询
- 查看查询结果,支持导出功能
常用 SQL 示例
-- 查询表前 10 条数据
SELECT * FROM table_name LIMIT 10;
-- 按条件查询
SELECT * FROM users WHERE status = 'active' ORDER BY created_at DESC;
-- 统计数据
SELECT COUNT(*) as total, status FROM users GROUP BY status;
-- 插入数据
INSERT INTO users (name, email, status) VALUES ('张三', '[email protected]', 'active');
-- 更新数据
UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01';
-- 删除数据
DELETE FROM logs WHERE created_at < '2024-01-01';数据存储位置
连接配置
- 默认位置:
~/.db-tool/connections.json- Windows:
C:\Users\用户名\.db-tool\connections.json - macOS/Linux:
/Users/用户名/.db-tool/connections.json或/home/用户名/.db-tool/connections.json
- Windows:
- 自定义位置:设置环境变量
DB_TOOL_DATA_DIR# Windows set DB_TOOL_DATA_DIR=D:\mydata\dbtool # macOS/Linux export DB_TOOL_DATA_DIR=/path/to/custom/data
查询历史
- 存储位置:浏览器 LocalStorage
- 自动保存:每次执行查询后自动保存
- 数量限制:最多保存 50 条记录
支持的数据库类型
| 数据库类型 | 默认端口 | 特性 | |-----------|---------|------| | MySQL | 3306 | 支持存储过程、触发器、视图、全文搜索 | | PostgreSQL | 5432 | 支持存储过程、触发器、视图、JSON 类型 | | SQLite | - | 轻量级,文件型数据库,无需服务器 | | SQL Server | 1433 | 微软数据库,支持存储过程、触发器、视图 | | Oracle | 1521 | 企业级数据库,功能强大 | | CockroachDB | 26257 | 分布式 SQL 数据库,兼容 PostgreSQL | | MongoDB | 27017 | NoSQL 文档数据库 | | SAP HANA | 39013 | 内存数据库,高性能分析 |
兼容性说明:
- MariaDB、TiDB 兼容 MySQL,选择 MySQL 类型即可
- Aurora MySQL 兼容 MySQL,选择 MySQL 类型即可
- Aurora PostgreSQL 兼容 PostgreSQL,选择 PostgreSQL 类型即可
- Better-SQLite3 兼容 SQLite,选择 SQLite 类型即可
常见问题
安装和启动
Q: 安装后无法启动服务?
A: 请检查以下几点:
- 确认已正确安装:
npm install -g fdb2 - 检查 Node.js 版本(建议 v14 或更高):
node --version - 查看错误信息:
fdb2 start --verbose - 检查端口 3000 是否被占用:
netstat -ano | findstr :3000(Windows)或lsof -i :3000(Mac/Linux)
Q: 如何更换端口?
A: 可以通过环境变量设置端口:
# Windows
set PORT=8080
fdb2 start
# Mac/Linux
PORT=8080 fdb2 start连接问题
Q: 连接数据库失败怎么办?
A: 请按以下步骤排查:
- 确认数据库服务正在运行
- 检查网络连接和端口是否正确
- 验证用户名和密码是否正确
- 检查数据库是否允许远程连接
- 查看数据库防火墙设置
Q: SQLite 数据库连接失败?
A: SQLite 连接需要提供数据库文件路径:
- 绝对路径:
D:\data\mydb.sqlite - 相对路径:
./data/mydb.sqlite(相对于数据目录) - 确保文件存在且有读取权限
数据操作
Q: 查询结果为空?
A: 可能的原因:
- 表中确实没有数据
- WHERE 条件过于严格
- 数据库名称或表名错误
- 查询权限不足
Q: 无法编辑或删除数据?
A: 请检查:
- 是否有足够的数据库权限
- 表是否有外键约束
- 数据是否被锁定
- 查看数据库错误日志
性能问题
Q: 查询速度很慢?
A: 优化建议:
- 添加适当的索引
- 限制查询结果数量(使用 LIMIT)
- 避免使用
SELECT *,只查询需要的字段 - 优化 WHERE 条件
- 考虑分批处理大数据量
Q: 数据库信息加载很慢?
A: 可能的原因:
- 数据库中表数量过多
- 表数据量过大
- 网络延迟
- 数据库性能问题
数据安全
Q: 连接密码安全吗?
A: 当前版本密码以明文形式存储在本地配置文件中。建议:
- 不要在公共电脑上保存敏感数据库连接
- 定期更换数据库密码
- 使用只读权限的账号进行日常操作
- 生产环境建议使用加密连接(SSL/TLS)
Q: 如何备份数据库连接配置?
A: 复制配置文件即可:
# Windows
copy C:\Users\用户名\.db-tool\connections.json D:\backup\
# Mac/Linux
cp ~/.db-tool/connections.json ~/backup/更新和卸载
Q: 如何更新到最新版本?
A: 重新安装即可:
npm update -g fdb2Q: 如何完全卸载?
A: 执行以下步骤:
# 卸载程序
npm uninstall -g fdb2
# 删除数据目录(可选,会删除所有连接配置)
# Windows
rmdir /s C:\Users\用户名\.db-tool
# Mac/Linux
rm -rf ~/.db-tool高级技巧
批量操作
批量执行 SQL 文件:
-- 创建一个 .sql 文件
USE my_database;
UPDATE users SET status = 'active' WHERE id > 100;
DELETE FROM logs WHERE created_at < '2024-01-01';然后在 SQL 查询页面复制粘贴执行。
数据导出技巧
导出特定字段:
SELECT id, name, email FROM users WHERE status = 'active';导出并格式化数据:
SELECT
id,
name,
DATE_FORMAT(created_at, '%Y-%m-%d') as created_date
FROM users;性能监控
查看表大小:
-- MySQL
SELECT
table_name,
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = 'your_database';
-- PostgreSQL
SELECT
schemaname,
tablename,
pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables
WHERE schemaname = 'public';获取帮助
- GitHub Issues: 提交问题
- 文档: 查看在线文档
- 社区: 加入用户交流群
享受使用数据库管理工具!如有任何问题,欢迎反馈。
