Skip to main content

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

FieldRequiredNotes
hostYesHostname or IPv4 literal. Schemes, paths, and raw IPv6 literals are rejected.
portNoDefaults to 3306.
userYesThe account the sync connects as.
sslNoDefaults to true. When enabled, the connection requires TLS 1.2 or newer with certificate verification.
databasesNoOptional list of database names (up to 500) to limit discovery. Omitted or empty means every database the user can see.
passwordYesStored 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 from table_comment. MySQL stamps the literal text VIEW into table_comment for 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.