

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengonversi SQL Server ke MySQL
<a name="CHAP_Source.SQLServer.ToMySQL"></a>

Untuk meniru fungsi database Microsoft SQL Server dalam kode MySQL yang dikonversi, gunakan paket ekstensi SQL Server ke MySQL di. AWS SCT Untuk informasi selengkapnya tentang paket ekstensi, lihat[Menggunakan paket ekstensi dengan AWS Schema Conversion Tool](CHAP_ExtensionPack.md). 

**Topics**
+ [Hak istimewa untuk MySQL sebagai basis data target](#CHAP_Source.SQLServer.ToMySQL.ConfigureTarget)
+ [SQL Server ke pengaturan konversi MySQL](#CHAP_Source.SQLServer.ToMySQL.ConversionSettings)
+ [Pertimbangan migrasi](#CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations)

## Hak istimewa untuk MySQL sebagai basis data target
<a name="CHAP_Source.SQLServer.ToMySQL.ConfigureTarget"></a>

Hak istimewa yang diperlukan untuk MySQL sebagai target adalah sebagai berikut:
+ BUAT DI \$1 . \$1
+ UBAH PADA \$1 . \$1
+ JATUHKAN\$1 . \$1
+ INDEKS PADA\$1 . \$1
+ REFERENSI PADA\$1 . \$1
+ PILIH PADA \$1 . \$1
+ BUAT TAMPILAN DI \$1 . \$1
+ TAMPILKAN TAMPILAN DI \$1 . \$1
+ PEMICU PADA \$1 . \$1
+ BUAT RUTINITAS DI \$1 . \$1
+ MENGUBAH RUTINITAS PADA \$1 . \$1
+ MENGEKSEKUSI PADA \$1 . \$1
+ SISIPKAN, PERBARUI PADA AWS\$1SQLSERVER \$1EXT. \$1
+ SISIPKAN, PERBARUI, HAPUS PADA AWS\$1SQLSERVER \$1EXT\$1DATA. \$1
+ BUAT TABEL SEMENTARA DI AWS\$1SQLSERVER \$1EXT\$1DATA. \$1

Anda dapat menggunakan contoh kode berikut untuk membuat pengguna database dan memberikan hak istimewa.

```
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';
```

Pada contoh sebelumnya, ganti *user\$1name* dengan nama pengguna Anda. Kemudian, ganti *your\$1password* dengan kata sandi yang aman.

Jika Anda menggunakan database MySQL versi 5.7 atau lebih rendah sebagai target, maka jalankan perintah berikut. Untuk database MySQL versi 8.0 dan yang lebih tinggi, perintah ini tidak digunakan lagi.

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

Untuk menggunakan Amazon RDS for MySQL atau Aurora MySQL sebagai target, tetapkan parameter ke. `lower_case_table_names` `1` Nilai ini berarti bahwa server MySQL menangani pengidentifikasi nama objek seperti tabel, indeks, pemicu, dan database sebagai case insensitive. Jika Anda telah mengaktifkan logging biner dalam instance target Anda, maka atur `log_bin_trust_function_creators` parameternya ke`1`. Dalam hal ini, Anda tidak perlu menggunakan`DETERMINISTIC`, `READS SQL DATA` atau `NO SQL` karakteristik untuk membuat fungsi yang disimpan. Untuk mengonfigurasi parameter ini, buat grup parameter DB baru atau modifikasi grup parameter DB yang ada.

## SQL Server ke pengaturan konversi MySQL
<a name="CHAP_Source.SQLServer.ToMySQL.ConversionSettings"></a>

**Untuk mengedit SQL Server ke pengaturan konversi MySQL, pilih Pengaturan, AWS SCT lalu **pilih** Pengaturan konversi.** Dari daftar atas, pilih **SQL Server**, lalu pilih **SQL Server - MySQL**. AWS SCT menampilkan semua pengaturan yang tersedia untuk konversi SQL Server ke MySQL.

Pengaturan AWS SCT konversi SQL Server ke MySQL termasuk opsi untuk berikut ini:
+ Untuk membatasi jumlah komentar dengan item tindakan dalam kode yang dikonversi.

  Untuk **Tambahkan komentar di kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi**, pilih tingkat keparahan item tindakan. AWS SCT menambahkan komentar dalam kode yang dikonversi untuk item tindakan dengan tingkat keparahan yang dipilih dan lebih tinggi.

  Misalnya, untuk meminimalkan jumlah komentar dalam kode yang dikonversi, pilih **Error only**. Untuk menyertakan komentar untuk semua item tindakan dalam kode yang dikonversi, pilih **Semua pesan**.
+ Untuk memungkinkan database SQL Server sumber Anda untuk menyimpan output `EXEC` dalam tabel. AWS SCT membuat tabel sementara dan prosedur tambahan untuk meniru fitur ini. Untuk menggunakan emulasi ini, pilih **Buat rutinitas tambahan untuk menangani kumpulan data terbuka**.

## Pertimbangan migrasi
<a name="CHAP_Source.SQLServer.ToMySQL.MigrationConsiderations"></a>

Pertimbangkan hal-hal ini saat memigrasikan skema SQL Server ke MySQL:
+ MySQL tidak mendukung pernyataan tersebut. `MERGE` Namun, AWS SCT dapat meniru `MERGE` pernyataan selama konversi dengan menggunakan `INSERT ON DUPLICATE KEY` klausa dan pernyataan. `UPDATE FROM and DELETE FROM`

  Untuk menggunakan emulasi yang benar`INSERT ON DUPLICATE KEY`, pastikan bahwa kendala unik atau kunci utama ada pada database MySQL target.
+ Anda dapat menggunakan `GOTO` pernyataan dan label untuk mengubah urutan pernyataan dijalankan. Setiap pernyataan Transact-SQL yang mengikuti `GOTO` pernyataan dilewati, dan pemrosesan berlanjut pada label. Anda dapat menggunakan `GOTO` pernyataan dan label di mana saja dalam blok prosedur, batch, atau pernyataan. Anda juga dapat membuat `GOTO` pernyataan sarang.

  MySQL tidak menggunakan pernyataan. `GOTO` Ketika AWS SCT mengkonversi kode yang berisi `GOTO` pernyataan, itu mengubah pernyataan untuk menggunakan pernyataan `BEGIN…END` atau`LOOP…END LOOP`. Anda dapat menemukan contoh bagaimana AWS SCT mengkonversi `GOTO` pernyataan dalam tabel berikut.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/SchemaConversionTool/latest/userguide/CHAP_Source.SQLServer.ToMySQL.html)
+ MySQL tidak mendukung fungsi bernilai tabel multistatement. AWS SCT mensimulasikan fungsi bernilai tabel selama konversi dengan membuat tabel sementara dan menulis ulang pernyataan untuk menggunakan tabel sementara ini.