Query MariaDB in plain English

Connect your database, type the question, get the answer. ByeSQL generates the SQL from your real schema, runs it read-only, and gives you a table, a chart or a dashboard panel. Nothing is deployed to your server.

Its own MariaDB driverSELECT-only by defaultNothing installed on the server

Treated as MariaDB, not as MySQL with a different name

Wire-compatible is not the same as safe to share a driver with, and we found that out in practice.

Reusing the MySQL driver
  • Opening and closing a connection works, which is what makes it look fine
  • Schema introspection hung indefinitely against a real server
  • Failures appear only once you query real data, not during setup
  • Every MariaDB-specific behaviour is inherited by accident
What ByeSQL does
  • The official MariaDB driver, on the backend and in the desktop app
  • Its own branch in every connection and introspection path
  • Verified end to end against a real MariaDB instance, not just a connect test
  • Dialect-aware generation, so the SQL targets MariaDB

It works from your real schema

The most common failure of a general-purpose model writing SQL is inventing a table or a column. ByeSQL sends your actual schema as context with every prompt, so there is nothing to guess.

Tables and views

Both are introspected, so a question can be answered from a view you already built for reporting.

Columns and types

Names and data types, so DATETIME columns are filtered as dates and numeric columns are aggregated as numbers.

Keys and relationships

Primary keys, foreign keys and unique indexes, so a generated JOIN follows the relationships that actually exist in your schema.

As with MySQL, foreign keys are only visible to introspection on InnoDB tables. A legacyMyISAM table shows its columns but not its relationships.

The connection we recommend

Never connect a tool with root or your application user. Create a dedicated read-only user scoped to one database.

CREATE USER 'byesql_reader'@'%' IDENTIFIED BY 'a-strong-password';

-- Scope it to a single database. MariaDB applies this to tables
-- created later too, so there is nothing to re-grant.
GRANT SELECT ON your_database.* TO 'byesql_reader'@'%';

FLUSH PRIVILEGES;

SHOW GRANTS FOR 'byesql_reader'@'%';

If your database sits behind a firewall, replace '%' with the host or range you allow connections from.

Running other databases too?

Connect them all and switch between them in the same workspace. Six engines are supported today.

ByeSQL for MySQL

MariaDB questions

Is MariaDB just treated as MySQL?

No, and that distinction was learned the hard way. MariaDB is wire-compatible with MySQL, so sharing a driver looks safe, and for us it was not: the MySQL client library connected fine but then hung during schema introspection against a real MariaDB server. MariaDB now has its own dedicated driver on every layer, and its own branch in every code path.

Which MariaDB versions work?

Any version still in support. From 10.4 onwards new users default to the mysql_native_password or ed25519 authentication plugin depending on how the server is configured, and either is fine for a password-authenticated read-only user.

Do I need to re-grant when I add a table?

No. Like MySQL, MariaDB applies a database-level GRANT to tables created after the grant was given, so a new table is readable immediately. You do need to hit Refresh on the connection so ByeSQL re-reads the schema and knows it exists.

Can it write to my MariaDB database?

No. A statement only passes if it begins with SELECT or WITH, and it is rejected if any of nine write keywords appears anywhere in it. That check runs before the SQL reaches MariaDB, and the query is rewritten to carry a LIMIT of 200 rows by default and 5,000 at most.

See all frequently asked questions →

Ask your MariaDB database a question

Free plan, no credit card. Read-only by default, so production is a safe place to start.