About EasyDB
Open-source, cross-platform database management tool
Connection Management · Object Browser · SQL Editor · Data Tracker · DDL Audit · Structure Diff · Data Migration · Data Sync · Data Export · Backup & Restore · Slow Query Analysis · Task Center · Secure Connection
✨ Features
🔌 Connection Management
- Create, edit, test, group, and search MySQL connections
- SSH Tunnel: JSch local port forwarding — bypass jump servers to access internal databases (password & private key authentication)
- SSL/TLS Encryption: CA certificate verification, mutual TLS authentication (PEM format, no JKS conversion needed)
- Encrypted Credential Storage: Connection passwords encrypted at rest with AES-256-GCM (machine-bound key); API responses automatically masked
🗂️ Database Workbench
- Object tree browser with categorized nodes: Tables · Views · Stored Procedures · Functions · Triggers
- Data preview with WHERE filter, column sorting, and field auto-completion
- View support: data preview (read-only) and DDL viewer
- Stored procedure / function / trigger DDL viewer
- Table structure designer and DDL viewer
⚙️ Stored Procedure Execution
- Right-click menu entry in workbench object tree (⚙ Execute Procedure / ⨍ Call Function)
- Auto-load parameter metadata (IN/OUT/INOUT direction, data types)
- Type-aware input components (integer, decimal, boolean, date, datetime, text)
- NULL checkbox for each parameter
- OUT parameter value display after execution
- Multi-result-set support with tabbed display
- Function return value display
- Execution duration tracking
- ProcedureAdapter architecture — extendable to PostgreSQL / DM (KingbaseES)
✏️ SQL Editor
- Powered by Monaco Editor with syntax highlighting
- Smart auto-completion: table names, column names, SQL keywords, MySQL functions
- Context-aware: auto-detects tables in FROM/JOIN clauses and suggests columns
- Execute selected text or full script with ⌘+Enter
- SQL History: configurable per-database query history, searchable, re-run with one click (can be toggled per-database in Settings)
🔍 Data Tracker (CDC)
- Real-time Binlog event capture: INSERT / UPDATE / DELETE (row-level)
- Replay mode: replay historical Binlog files with configurable start/end positions
- Server-side pagination — backend stores all events, frontend pulls on demand
- Per-column diff view for UPDATE events, diff-only mode hides unchanged columns
- Rollback SQL generation: reverse DML to DELETE/INSERT/UPDATE; download as .sql
- Forward replay SQL generation
- DDL Audit (v1.5 new): captures table-level DDL from Binlog QUERY events
- 5 DDL types: CREATE TABLE / ALTER TABLE / DROP TABLE / TRUNCATE TABLE / RENAME TABLE
- Risk classification: low / medium / high / critical
- Raw SQL preserved for full audit trail
- Dedicated DDL detail panel (no rollback/replay — read-only audit)
- DDL filter in event list, DDL count in statistics panel
- DDL events excluded from rollback/replay SQL generation
🆚 Structure Diff
- Table-level structure comparison between two MySQL instances
- Extended object comparison: Views · Stored Procedures · Functions · Triggers
- DDL normalization: strips DEFINER, comments, and whitespace before diff
- Side-by-side DDL comparison for non-table objects
🚀 Data Migration
- Wizard-style workflow: Select Connection → Select Objects → Configure Strategy → Execute
- Supports both schema migration and data migration
🔄 Data Sync
- Table-level real-time sync with INSERT / UPSERT strategies
- Performance optimized: 1.9M rows sync reduced from 48 min → 5 min 25 sec (9x faster)
- rewriteBatchedStatements for batch writes
- Disables unique_checks / foreign_key_checks during sync
- Dynamic batch size (5,000 for regular tables, 10,000 for large tables)
📤 Data Export
- Export to SQL/ZIP files for viewing, delivery, and compatibility
- Support export cancellation with automatic cleanup of incomplete files
- Direct download of exported files
💾 Database Backup & Restore
- Backup
- Create standard backup packages (.edbkp) with structure, data, and checksums
- Three backup modes: full, structure-only, data-only
- Table-level selection: choose specific tables or entire database
- Consistent snapshot backup with Binlog position for PITR
- SHA-256 checksum ensures data integrity
- Custom output path, size estimation, progress tracking
- Restore
- Restore database from standard backup packages
- File inspection: verify integrity, SHA-256, consistency status
- Two restore strategies: restore to new database, overwrite existing
- Three restore modes: full, structure-only, data-only
- Table-level selection: restore specific tables
- Real-time progress, log output, cancellation support
📥 SQL File Import
- Native file picker (Tauri system dialog)
- Drag & drop upload / manual path input
- Stream-based import, no memory pressure for large files
- Execution stats: success, failure, skip counts
- Progress tracking, log viewer, cancellation support
🔍 Slow Query Analysis
- Based on MySQL performance_schema — no Binlog or slow log parsing required
- SQL fingerprint aggregation: group by digest, view execution count, average/max latency, rows scanned
- Filter by minimum latency threshold, database, keyword search
- Index-miss-only filter to surface queries without proper indexing
- Sort by average latency, max latency, or execution count
- One-click EXPLAIN execution plan analysis
- Auto-detect performance_schema availability with capability check
📋 Task Center
- Unified management for migration, sync, export, and import tasks
- Real-time progress, elapsed time, and log viewer
- Task cancellation, filtering, and history
⚙️ Settings
- Dark / Light / System theme switching
- Storage management: disk usage visualization, categorized cleanup (exports / logs / backups / task records)
- Backup file management: list view, individual delete, batch cleanup by days
- Auto-update check