Mehmet Deniz Aydın Full Stack Developer
TR
← Open source

Desktop app

MieSQL

A fast SQL client for macOS, Windows and Linux.

MieSQL is a SQL client, an open-source alternative to Navicat. It connects to PostgreSQL, MySQL, MariaDB, SQLite and Redis.

I wrote it with no Electron runtime and no telemetry. Connection profiles, query history and settings stay on the machine, and the app only talks to the databases you point it at.

Built with Tauri, Rust, and React.

What it does

  • Several connections open at once, each on its own lock, so a slow query on one server never blocks another.
  • SSH tunnelling through the system ssh client, so ~/.ssh/config, the agent and jump hosts work as in a terminal.
  • A SQL editor with syntax highlighting and completion of table and column names. ⌘↩ runs the selection, or the whole script when nothing is selected. A running query can be stopped without losing the session.
  • Tables open with Data, Structure and DDL tabs. The grid is editable, and applying changes first shows the exact INSERT, UPDATE and DELETE statements.
  • Dump and restore, CSV import with column mapping, and export as CSV, TSV, JSON, SQL INSERT or Markdown.
  • A read-only mode per connection that blocks writes before they leave the app. Passwords go in the system credential store.
  • Light, dark or system appearance, in English and Turkish.

Install

Download the build for your system from the latest release: MieSQL_*_universal.dmg for macOS (Apple silicon and Intel), MieSQL_*_x64-setup.exe for Windows, and an .AppImage, .deb or .rpm for Linux.

  • macOS: signed and notarised, so it opens without a warning. The very first launch is slow while macOS checks the bundle once.
  • Windows: the installer is not signed, so SmartScreen shows an unknown publisher. Choose More info, then Run anyway. It installs for the current user and needs no administrator rights.
  • Linux: make the AppImage executable with chmod +x. Saving passwords needs a Secret Service provider such as gnome-keyring or KWallet. Without one, MieSQL asks for the password each time.

Connecting

Use New Connection from URL and paste any of these. The URL fills in the form instead of saving straight away, so you can check it first.

postgres://user:password@host:5432/database?sslmode=require
mysql://root:p@ss@127.0.0.1:3307/shop
jdbc:postgresql://localhost:5432/app
sqlite:///Users/you/app.sqlite
host=db.example.com port=5433 dbname=app user=ada password='se cret'

Passwords containing @, : or / parse correctly. A connection’s context menu has Copy Connection URL, which leaves the password out.

Good to know

  • There is no MongoDB or Firebase support, and no schema editor. Changing a table means writing the ALTER yourself.
  • Redis commands cannot be cancelled.
  • verify-ca and verify-full are treated as Require, because certificate validation is not implemented yet. The app says so.
  • SSH password login does not work on Windows. Use a key or ssh-agent there.
  • Builds for Windows and Linux are x86_64. macOS is universal.
  • There is no analytics and no crash reporting. Everything stays in one folder: ~/Library/Application Support/MieSQL on macOS, %APPDATA%\MieSQL on Windows, ~/.local/share/MieSQL on Linux. The update check is the only request it makes by itself, and you can turn it off in Settings.

Build from source

You need Rust 1.77 or newer and Node 22 or newer. On Linux you also need the WebKitGTK development packages.

git clone https://github.com/mdenizay/miesql.git
cd miesql
npm install
npm run app:build

For development, npm run app:dev runs the app with hot reload, and cargo test --manifest-path src-tauri/Cargo.toml runs the tests.