Skip to Content
Unified docs shell with shared Classifyre tokens and acid-green highlight accents.
SourcesMy SQL

My SQL

Schema-driven source documentation.

MYSQL35 fields3 examples
Commonly Asked Questions
Assistant knowledge mapped to this source type from assistant_knowledge.json.

Required
Fields required for a valid configuration payload under `config.required`.
PathTypeRequiredDescriptionDefaultConstraints
requiredobjectYesno extra properties
required.hoststringYesMySQL hostlocalhost
required.portintegerYesMySQL port3306min 1, max 65535
Masked
Sensitive fields under `config.masked` (secrets/credentials).
PathTypeRequiredDescriptionDefaultConstraints
maskedobjectYesno extra properties
masked.passwordstringYesDatabase password
masked.usernamestringYesDatabase username
Optional
Optional configuration fields under `config.optional`.
PathTypeRequiredDescriptionDefaultConstraints
optionalobjectNono extra properties
optional.connectionobjectNoConnection tuning for MySQL.no extra properties
optional.connection.connect_timeout_secondsintegerNoConnection timeout in seconds10min 1, max 120
optional.scopeobjectNoDatabase and table selection scope.no extra properties
optional.scope.databasestringNoSingle database to scan (optional when include_all_databases is true)
optional.scope.exclude_databasesarrayNoDatabase denylist (exact database names)["information_schema","mysql","performance_schema","sys"]
optional.scope.exclude_databases[]stringNo
optional.scope.include_all_databasesbooleanNoScan all visible databases except excluded system databasesfalse
optional.scope.include_tablesarrayNoOptional table allowlist. Accepted forms: table or database.table
optional.scope.include_tables[]stringNo
optional.scope.table_limitintegerNoOptional cap on number of table assets extracted per databasemin 1
Examples
Reference payloads generated from shared source examples JSON.
Scan a single MySQL database with random row sampling
Extract table assets from one MySQL database and sample random rows for detector content

Schedule

{
  "enabled": true,
  "preset": "weekday_business",
  "cron": "11 11 * * 1-5",
  "timezone": "UTC"
}

Config Payload

{
  "type": "MYSQL",
  "required": {
    "host": "localhost",
    "port": 3306
  },
  "masked": {
    "username": "root",
    "password": "example"
  },
  "optional": {
    "scope": {
      "database": "app_db"
    }
  },
  "sampling": {
    "strategy": "RANDOM",
    "limit": 20,
    "max_columns": 20,
    "max_cell_chars": 512
  }
}
Scan all MySQL databases with latest-row sampling
Enumerate visible MySQL databases and prioritize latest records when sampling detector payloads

Schedule

{
  "enabled": true,
  "preset": "nightly",
  "cron": "43 1 * * *",
  "timezone": "UTC"
}

Config Payload

{
  "type": "MYSQL",
  "required": {
    "host": "localhost",
    "port": 3306
  },
  "masked": {
    "username": "root",
    "password": "example"
  },
  "optional": {
    "scope": {
      "include_all_databases": true,
      "exclude_databases": [
        "information_schema",
        "mysql",
        "performance_schema",
        "sys"
      ]
    }
  },
  "sampling": {
    "strategy": "LATEST",
    "limit": 30,
    "order_by_column": "updated_at",
    "fallback_to_random": true
  }
}
Scan selected MySQL tables with detector pipeline
Limit extraction to selected tables and run secrets + PII detectors on sampled rows

Schedule

{
  "enabled": true,
  "preset": "weekday_morning",
  "cron": "37 8 * * 1-5",
  "timezone": "UTC"
}

Config Payload

{
  "type": "MYSQL",
  "required": {
    "host": "localhost",
    "port": 3306
  },
  "masked": {
    "username": "root",
    "password": "example"
  },
  "optional": {
    "scope": {
      "database": "analytics",
      "include_tables": [
        "analytics.customers",
        "analytics.orders"
      ]
    }
  },
  "sampling": {
    "strategy": "RANDOM",
    "limit": 15,
    "max_total_chars": 15000
  },
  "detectors": [
    {
      "type": "SECRETS",
      "enabled": true
    },
    {
      "type": "PII",
      "enabled": true
    }
  ]
}