MySQL / MariaDB
The MySQL connector covers MySQL 8+ and MariaDB — both speak the same wire protocol and expose the same information_schema surface. It connects directly to your server and reads metadata only; it never reads rows from your tables.
Connection settingsDirect link to Connection settings
| Field | Required | Notes |
|---|---|---|
host | Yes | Hostname or IPv4 literal. Schemes, paths, and raw IPv6 literals are rejected. |
port | No | Defaults to 3306. |
user | Yes | The account the sync connects as. |
ssl | No | Defaults to true. When enabled, the connection requires TLS 1.2 or newer with certificate verification. |
databases | No | Optional list of database names (up to 500) to limit discovery. Omitted or empty means every database the user can see. |
password | Yes | Stored in Supabase Vault; decrypted only in the sync worker and never shown again after saving. |
What gets discoveredDirect link to What gets discovered
MySQL has no schema layer inside a database, so the connector maps your server onto the catalog like this:
- The server becomes a single catalog database, named after the host you entered.
- Each MySQL database appears as a schema.
- Tables and views are read from
information_schema, with table comments fromtable_comment. MySQL stamps the literal textVIEWintotable_commentfor every view; the connector treats that sentinel as no comment. - Columns carry data type, nullability, and comments from
column_comment.
If you set databases, discovery is filtered to those names (compared case-insensitively). After the first passed test, the sync scope picker narrows things further to exact schemas and tables — see the connectors overview.
NetworkDirect link to Network
Same posture as PostgreSQL: connections to private, loopback, or link-local addresses are refused, whether you enter a literal IP or a hostname that resolves to one. If any resolved address is forbidden, the whole configuration is refused, so your server must be reachable at a public address.