

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Umwandeln von SQL Server in MySQL
<a name="CHAP_Source.SQLServer.ToMySQL"></a>

Verwenden Sie das Erweiterungspaket SQL Server to MySQL, um Microsoft SQL Server-Datenbankfunktionen in Ihrem konvertierten MySQL-Code zu emulieren. AWS SCT Weitere Informationen zu Erweiterungspaketen finden Sie unter [Verwenden von Erweiterungspaketen mit AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Rechte für MySQL als Zieldatenbank](#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget)
+ [Einstellungen für die Konvertierung von SQL Server in MySQL](#CHAP_Source.SQLServer.ToMySQL.ConversionSettings)
+ [Überlegungen zur Migration](#CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations)

## Rechte für MySQL als Zieldatenbank
<a name="CHAP_Source.SQLServer.ToMySQL.ConfigureTarget"></a>

Die für MySQL als Ziel erforderlichen Rechte lauten wie folgt:
+ ERSTELLEN AM \$1 . \$1
+ SPÄTER AM \$1 . \$1
+ VORBEIKOMMEN \$1 . \$1
+ INDEX AUF \$1 . \$1
+ REFERENZEN AUF \$1 . \$1
+ SELECT ON \$1.\$1
+ ANSICHT ERSTELLEN AUF \$1 . \$1
+ SHOW VIEW ON \$1.\$1
+ AUSLÖSEN AM \$1 . \$1
+ ROUTINE ERSTELLEN AUF \$1 . \$1
+ ROUTINE ÄNDERN AUF \$1 . \$1
+ AUSFÜHREN AM \$1 . \$1
+ EINFÜGEN, AUF AWS\$1SQLSERVER \$1EXT AKTUALISIEREN. \$1
+ EINFÜGEN, AKTUALISIEREN, LÖSCHEN AUF AWS\$1SQLSERVER \$1EXT\$1DATA. \$1
+ ERSTELLEN SIE TEMPORÄRE TABELLEN AUF AWS\$1SQLSERVER \$1EXT\$1DATA. \$1

Sie können das folgende Codebeispiel verwenden, um einen Datenbankbenutzer zu erstellen und die Berechtigungen zu gewähren.

```
CREATE USER 'user_name' IDENTIFIED BY 'your_password';
GRANT CREATE ON *.* TO 'user_name';
GRANT ALTER ON *.* TO 'user_name';
GRANT DROP ON *.* TO 'user_name';
GRANT INDEX ON *.* TO 'user_name';
GRANT REFERENCES ON *.* TO 'user_name';
GRANT SELECT ON *.* TO 'user_name';
GRANT CREATE VIEW ON *.* TO 'user_name';
GRANT SHOW VIEW ON *.* TO 'user_name';
GRANT TRIGGER ON *.* TO 'user_name';
GRANT CREATE ROUTINE ON *.* TO 'user_name';
GRANT ALTER ROUTINE ON *.* TO 'user_name';
GRANT EXECUTE ON *.* TO 'user_name';
GRANT INSERT, UPDATE ON AWS_SQLSERVER_EXT.* TO 'user_name';
GRANT INSERT, UPDATE, DELETE ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
GRANT CREATE TEMPORARY TABLES ON AWS_SQLSERVER_EXT_DATA.* TO 'user_name';
```

Ersetzen Sie es im vorherigen Beispiel *user\$1name* durch den Namen Ihres Benutzers. Ersetzen Sie es dann *your\$1password* durch ein sicheres Passwort.

Wenn Sie eine MySQL-Datenbank Version 5.7 oder niedriger als Ziel verwenden, führen Sie den folgenden Befehl aus. Für MySQL-Datenbanken der Version 8.0 und höher ist dieser Befehl veraltet.

```
GRANT SELECT ON mysql.proc TO 'user_name';
```

Setzen Sie den Parameter `lower_case_table_names` auf `1`, um Amazon RDS für MySQL oder Aurora MySQL als Ziel zu verwenden. Dieser Wert bedeutet, dass der MySQL-Server Kennungen von Objektnamen wie Tabellen, Indizes, Auslösern und Datenbanken ohne Berücksichtigung der Groß- und Kleinschreibung behandelt. Wenn Sie die binäre Protokollierung in Ihrer Ziel-Instance aktiviert haben, setzen Sie den Parameter `log_bin_trust_function_creators` auf `1`. In diesem Fall müssen Sie die Eigenschaften `DETERMINISTIC`, `READS SQL DATA` oder `NO SQL` nicht verwenden, um gespeicherte Funktionen zu erstellen. Erstellen Sie zum Konfigurieren dieser Parameter eine neue DB-Parametergruppe oder ändern Sie eine vorhandene DB-Parametergruppe.

## Einstellungen für die Konvertierung von SQL Server in MySQL
<a name="CHAP_Source.SQLServer.ToMySQL.ConversionSettings"></a>

Um die Einstellungen für die Konvertierung von SQL Server in MySQL zu bearbeiten, AWS SCT wählen Sie **Einstellungen** und dann **Konvertierungseinstellungen** aus. Wählen Sie in der oberen Liste **SQL Server** und dann **SQL Server — MySQL** aus. AWS SCT zeigt alle verfügbaren Einstellungen für die Konvertierung von SQL Server zu MySQL an.

Die Einstellungen für die Konvertierung von SQL Server in MySQL AWS SCT enthalten Optionen für Folgendes:
+ Um die Anzahl der Kommentare mit Aktionselementen im konvertierten Code zu begrenzen.

  Wählen **Sie für Hinzufügen von Kommentaren zum konvertierten Code für Aktionselemente mit ausgewähltem Schweregrad und höherem** Schweregrad den Schweregrad der Aktionspunkte aus. AWS SCT fügt dem konvertierten Code Kommentare für Aktionspunkte mit dem ausgewählten Schweregrad und höher hinzu.

  Beispiel: Um die Anzahl der Kommentare im konvertierten Code zu minimieren, wählen Sie **Nur Fehler** aus. Um Kommentare zu allen Aktionselementen in den konvertierten Code aufzunehmen, wählen Sie **Alle Nachrichten** aus.
+ Damit Ihre SQL Server-Quelldatenbank die Ausgabe von `EXEC` in einer Tabelle speichern kann. AWS SCT erstellt temporäre Tabellen und ein zusätzliches Verfahren, um diese Funktion zu emulieren. Um diese Emulation zu verwenden, wählen Sie **Zusätzliche Routinen für den Umgang mit offenen Datensätzen erstellen** aus.

## Überlegungen zur Migration
<a name="CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations"></a>

Beachten Sie bei der Migration eines SQL Server-Schemas zu MySQL die folgenden Punkte:
+ MySQL unterstützt die `MERGE` Anweisung nicht. AWS SCT Kann die `MERGE` Anweisung jedoch während der Konvertierung emulieren, indem es die `INSERT ON DUPLICATE KEY` Klausel und die `UPDATE FROM and DELETE FROM` Anweisungen verwendet.

  Stellen Sie für eine korrekte Verwendung der Emulation sicher`INSERT ON DUPLICATE KEY`, dass in der MySQL-Zieldatenbank eine eindeutige Einschränkung oder ein eindeutiger Primärschlüssel vorhanden ist.
+ Sie können eine `GOTO` Anweisung und ein Label verwenden, um die Reihenfolge zu ändern, in der Anweisungen ausgeführt werden. Alle Transact-SQL-Anweisungen, die auf eine `GOTO` Anweisung folgen, werden übersprungen, und die Verarbeitung wird an der Bezeichnung fortgesetzt. Sie können `GOTO` Anweisungen und Labels an einer beliebigen Stelle innerhalb einer Prozedur, eines Batches oder eines Anweisungsblocks verwenden. Sie können `GOTO` Anweisungen auch verschachteln.

  MySQL verwendet keine `GOTO` Anweisungen. Wenn Code AWS SCT konvertiert wird, der eine `GOTO` Anweisung enthält, wird die Anweisung so konvertiert, dass sie eine `BEGIN…END` `LOOP…END LOOP` OR-Anweisung verwendet. In der folgenden Tabelle finden Sie Beispiele dafür, wie `GOTO` Anweisungen AWS SCT konvertiert werden.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToMySQL.html)
+ MySQL unterstützt keine Tabellenwertfunktionen mit mehreren Anweisungen. AWS SCT simuliert Tabellenwertfunktionen während einer Konvertierung, indem temporäre Tabellen erstellt und Anweisungen so umgeschrieben werden, dass sie diese temporären Tabellen verwenden.