# MySQL — MySQL / MariaDB

> Konnektor für MySQL und MariaDB. Preview — derzeit nicht für den produktiven Einsatz geeignet.

---

Site [llms.txt](/llms.txt)

---

> **Preview — nicht produktionsreif**
>
> Der MySQL-Konnektor ist als **Vorabversion** eingestuft und für den produktiven Einsatz
> derzeit **nicht geeignet**. Er ist weder freigegeben noch für den Regelbetrieb
> abgesichert.
> 
> Wer MySQL oder MariaDB anbinden möchte, wendet sich bitte vorab an WYSA — dort wird der
> konkrete Anwendungsfall geprüft und der aktuelle Stand mitgeteilt.



Der MySQL-Konnektor ist für das Lesen von Daten aus **MySQL**- und **MariaDB**-Datenbanken
vorgesehen.

| Eigenschaft | Wert |
|---|---|
| Lesen | ⚠️ Preview, nicht produktionsreif |
| Schreiben | — nicht unterstützt |
| Job-Filter | ✅ wird als `WHERE`-Klausel übernommen |
| Status | Preview |

Wie beim [MSSQL-Konnektor](../mssql/) wird der Inhalt des Feldes `Filter` am Job — nach
Ersetzung des Platzhalters `%watermark%` — wörtlich hinter `WHERE` eingesetzt. Ohne Eintrag
im Feld `Filter` entsteht keine `WHERE`-Klausel und der Job liest bei jedem Lauf die
vollständige Tabelle. Der Ausdruck muss gültiges MySQL-SQL sein; es findet keine
Parametrisierung statt. Details zur Filter-Syntax siehe [MSSQL — Filter](../mssql/#filter--die-where-klausel-kommt-aus-dem-job).

> **Schreiben wird nicht unterstützt**
>
> Ein MySQL-System als `TargetConnection` führt zur Laufzeit zu einem Abbruch. Auch das
> Löschen von Datensätzen ist nicht implementiert.



---

## Verbindungsparameter

```json
{
  "connectionstring": "<MySQL Connection String>"
}
```

Beispiel:

```
Server=<server>;Database=<db>;User=<user>;Password=<password>;
```

### Optionale Parameter

| Parameter | Standardwert | Beschreibung |
|---|---|---|
| `commandTimeOut` | `30` | Zeitlimit für einzelne SQL-Befehle in Sekunden |
| `maxPageSize` | `5000` | Anzahl Datensätze je Seite |
| `language` | `de-DE` | Kultur, in der gelesene Zahlen- und Datumswerte formatiert werden |
| `keyVaultUrl` | *(leer)* | Key-Vault-Secret-URL; ersetzt sämtliche übrigen Parameter |

---

## Tabellen- und Feldnamen

| Einstellung | Wert |
|---|---|
| SourceTable | Tabellenname (z. B. `customers`, `orders`) |
| SourceField | Spaltenname, wie in der Tabelle definiert |

---

## Änderungserkennung (Watermark)

| Eigenschaft | Wert |
|---|---|
| WatermarkType | `date` oder `datetime` |
| WatermarkField | Name der Zeitstempel-Spalte |

Die Spalte aus `WatermarkField` wird zusätzlich zu den gemappten Feldern abgefragt und für
die Sortierung verwendet.

> **Empfehlung: echtes Datum als Watermark-Spalte**
>
> Geeignet sind `datetime`, `timestamp` und `date` — der Wert wird dann als ISO-Zeitstempel
> weitergereicht. Eine Spalte anderen Typs, etwa `bigint` oder `int`, führt nicht mehr zu
> einem Abbruch, wird aber unverändert über `ToString()` weitergegeben.



---

## Datentypen — gelesene Werte

Da Schreiben nicht unterstützt wird, ist allein der Lesepfad relevant. Der Typ ergibt sich
aus dem ADO.NET-Spaltentyp; der so ermittelte Typname wird zusammen mit dem formatierten
Wert an den Zielkonnektor weitergereicht und dort für die Auswahl der Umwandlung
verwendet.

| ADO.NET-Spaltentyp | Weitergegebener Typ | Formatierung des Wertes |
|---|---|---|
| `Int32` | `int32` | Wird als Ganzzahl gelesen und in der Kultur aus `language` ausgegeben |
| `Decimal` | `decimal` | Wird als Dezimalzahl gelesen und in der Kultur aus `language` ausgegeben |
| `Double` | `double` | Wie `Decimal` — Umwandlung über einen Dezimalwert |
| `DateTime` | `datetime` | Format `u`, also `yyyy-MM-dd HH:mm:ssZ` |
| alle übrigen | Name des .NET-Typs (z. B. `string`, `boolean`, `guid`) | Unveränderte Textdarstellung |

Welche Quelltypen ein Zielsystem akzeptiert, steht auf der jeweiligen Zielkonnektor-Seite:
[D365BC](../d365bc/), [D365CE](../d365ce/), [D365NAV](../d365nav/).
