

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

# Menggunakan MySQL-compatible database sebagai target AWS Database Migration Service
<a name="CHAP_Target.MySQL"></a>

Anda dapat memigrasikan data ke MySQL-compatible database apa pun menggunakan AWS DMS, dari salah satu mesin data sumber yang AWS DMS mendukung. Jika Anda bermigrasi ke MySQL-compatible database lokal, maka AWS DMS mesin sumber Anda harus berada di dalam ekosistem. AWS Mesin dapat menggunakan layanan yang AWS dikelola seperti Amazon RDS, Amazon Aurora, atau Amazon S3. Atau mesin bisa berada di basis data terkelola mandiri di Amazon EC2. 

Anda dapat menggunakan SSL untuk mengenkripsi koneksi antara MySQL-compatible titik akhir dan instance replikasi. Untuk informasi selengkapnya tentang penggunaan SSL dengan MySQL-compatible titik akhir, lihat. [Menggunakan SSL dengan AWS Database Migration Service](CHAP_Security.SSL.md) 

Untuk informasi tentang versi MySQL AWS DMS yang mendukung sebagai target, lihat. [Target untuk AWS DMS](CHAP_Introduction.Targets.md)

Anda dapat menggunakan MySQL-compatible database berikut sebagai target untuk AWS DMS:
+ MySQL Community Edition
+ MySQL Standard Edition
+ MySQL Enterprise Edition
+ MySQL Cluster Carrier Grade Edition
+ MariaDB Community Edition
+ MariaDB Enterprise Edition
+ MariaDB Column Store
+ Amazon Aurora MySQL

**catatan**  
Terlepas dari mesin penyimpanan sumber (MyISAM, MEMORY, dan sebagainya) AWS DMS , membuat tabel target MySQL-compatible sebagai tabel InnoDB secara default.   
Jika Anda memerlukan tabel di mesin penyimpanan selain InnoDB, Anda dapat membuat tabel secara manual pada MySQL-compatible target dan memigrasikan tabel menggunakan opsi **Jangan** apa-apa. Untuk informasi selengkapnya, lihat [Full-load pengaturan tugas](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md).

Untuk detail tambahan tentang bekerja dengan MySQL-compatible database sebagai target AWS DMS, lihat bagian berikut. 

**Topics**
+ [Menggunakan MySQL-compatible database apa pun sebagai target AWS Database Migration Service](#CHAP_Target.MySQL.Prerequisites)
+ [Pertimbangan untuk target Aurora MySQL 8.4](#CHAP_Target.MySQL.AuroraMySQL84)
+ [Keterbatasan dalam menggunakan MySQL-compatible database sebagai target AWS Database Migration Service](#CHAP_Target.MySQL.Limitations)
+ [Pengaturan titik akhir saat menggunakan MySQL-compatible database sebagai target AWS DMS](#CHAP_Target.MySQL.ConnectionAttrib)
+ [Tipe data target untuk MySQL](#CHAP_Target.MySQL.DataTypes)

## Menggunakan MySQL-compatible database apa pun sebagai target AWS Database Migration Service
<a name="CHAP_Target.MySQL.Prerequisites"></a>

Sebelum Anda mulai bekerja dengan MySQL-compatible database sebagai target AWS DMS, pastikan Anda telah menyelesaikan prasyarat berikut:
+ Berikan akun pengguna AWS DMS yang memiliki read/write hak istimewa ke MySQL-compatible database. Untuk membuat hak yang diperlukan, jalankan perintah berikut.

  ```
  CREATE USER '<user acct>'@'%' IDENTIFIED BY '<user password>';
  GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT, CREATE TEMPORARY TABLES  ON <schema>.* TO 
  '<user acct>'@'%';
  GRANT ALL PRIVILEGES ON awsdms_control.* TO '<user acct>'@'%';
  ```
+ Selama fase migrasi beban penuh, Anda harus nonaktifkan kunci asing pada tabel target Anda. Untuk menonaktifkan pemeriksaan kunci asing pada MySQL-compatible database selama pemuatan penuh, Anda dapat menambahkan perintah berikut ke bagian **Atribut koneksi tambahan** AWS DMS konsol untuk titik akhir target Anda.

  ```
  Initstmt=SET FOREIGN_KEY_CHECKS=0;
  ```
+ Tetapkan parameter basis data `local_infile = 1` untuk mengaktifkan AWS DMS agar memuat data ke basis data target.
+ Berikan hak istimewa berikut jika Anda menggunakan penilaian MySQL-specific premi.

  ```
  grant select on mysql.user to <dms_user>;
  grant select on mysql.db to <dms_user>;
  grant select on mysql.tables_priv to <dms_user>;
  grant select on mysql.role_edges to <dms_user>  #only for MySQL version 8.0.11 and higher
  ```

## Pertimbangan untuk target Aurora MySQL 8.4
<a name="CHAP_Target.MySQL.AuroraMySQL84"></a>

Aurora MySQL 8.4 memperkenalkan perubahan keamanan yang dapat memengaruhi konektivitas titik akhir target. AWS DMS Tinjau hal-hal berikut sebelum memutakhirkan target Aurora MySQL Anda ke versi 8.4.

**Penegakan TLS**

Aurora MySQL 8.4 ditetapkan secara `ON` default, yang berarti semua koneksi `require_secure_transport` harus menggunakan TLS. **Jika titik akhir AWS DMS target Anda terhubung ke Aurora MySQL 8.4 dan mode SSL diatur ke tidak ada, koneksi akan ditolak.** Jika mode SSL endpoint Anda disetel ke **none**, Anda akan menerima kesalahan berikut: `MySQL Error 3159 (HY000): Connections using insecure transport are prohibited while --require_secure_transport=ON` **Setel mode SSL endpoint ke verify-ca atau **verify-full**.** Kedua mode memerlukan sertifikat CA. Atau, atur `require_secure_transport` ke `OFF` dalam grup parameter cluster Aurora Anda untuk mengizinkan koneksi yang tidak terenkripsi.

**catatan**  
Aurora MySQL 8.4 hanya mendukung suite cipher GCM untuk TLS 1.2. Semua CBC-mode cipher telah dihapus. AWS DMS menggunakan TLS 1.2 untuk titik akhir MySQL dan Aurora MySQL dan akan secara otomatis menegosiasikan cipher GCM yang didukung. Jika Anda memiliki konfigurasi sandi khusus, verifikasi bahwa mereka menyertakan salah satu cipher yang didukung berikut: ECDHE-RSA-AES128-GCM-SHA256,,, atau. ECDHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES128-GCM-SHA256 ECDHE-ECDSA-AES256-GCM-SHA384

**catatan**  
AWS DMS tidak mendukung TLS 1.3 untuk endpoint MySQL. Ini tidak mempengaruhi konektivitas ke Aurora MySQL 8.4, karena Aurora MySQL 8.4 terus mendukung TLS 1.2.

**Otentikasi (Aurora MySQL dan RDS untuk MySQL 8.4)**

Aurora MySQL 8.4 menggantikan parameter dengan, yang defaultnya. `default_authentication_plugin` `authentication_policy` `*:caching_sha2_password` Pengguna database yang ada mempertahankan plugin otentikasi mereka saat ini setelah peningkatan. Jika Anda membuat pengguna AWS DMS endpoint baru setelah memutakhirkan, mereka akan menggunakan secara `caching_sha2_password` default kecuali Anda menyetel `authentication_policy` ke `*:mysql_native_password` dalam grup parameter cluster Anda.

**Reset kata sandi pengguna master**

Setelah memutakhirkan ke Aurora MySQL 8.4, mengatur ulang kata sandi pengguna master melalui, Konsol Manajemen AWS CLI, atau melalui rotasi Secrets Manager menetapkan plugin otentikasi pengguna master ke default yang ditentukan oleh parameter. `authentication_policy` Jika `authentication_policy` disetel ke nilai defaultnya (`*:caching_sha2_password`), plugin otentikasi pengguna master berubah dari `mysql_native_password` ke `caching_sha2_password` pada pengaturan ulang kata sandi berikutnya.

Jika titik akhir AWS DMS target Anda menggunakan akun pengguna utama, verifikasi konektivitas setelah pengaturan ulang kata sandi apa pun. Untuk menghindari perubahan plugin otentikasi, baik:
+ Setel `authentication_policy` ke `*:mysql_native_password` dalam grup parameter cluster Anda sebelum mengatur ulang kata sandi, atau
+ Buat pengguna AWS DMS endpoint khusus dengan plugin otentikasi yang ditentukan secara eksplisit (disarankan). Misalnya: `CREATE USER 'dms_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';`

*Untuk informasi selengkapnya tentang perubahan keamanan Aurora MySQL 8.4, lihat Keamanan dengan Amazon [Aurora MySQL dan manajemen Kata Sandi dengan Amazon Aurora dan](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Security.html) Secrets Manager di Panduan [Pengguna Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html).* Untuk informasi tentang masalah yang diketahui plugin otentikasi, lihat [Plugin otentikasi](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html#MySQL.Concepts.KnownIssuesAndLimitations.authentication-plugin) di Panduan Pengguna *Amazon RDS.*

## Keterbatasan dalam menggunakan MySQL-compatible database sebagai target AWS Database Migration Service
<a name="CHAP_Target.MySQL.Limitations"></a>

Saat menggunakan database MySQL sebagai target AWS DMS , tidak mendukung hal berikut:
+ Beberapa pernyataan bahasa definisi data (DDL): TRUNCATE PARTITION, DROP TABLE, dan RENAME TABLE.
+ Menggunakan pernyataan `ALTER TABLE {{table_name}} ADD COLUMN {{column_name}}` untuk menambahkan kolom ke bagian depan atau tengah tabel.
+ Saat memuat data ke MySQL-compatible target dalam tugas pemuatan penuh, AWS DMS tidak melaporkan kesalahan yang disebabkan oleh kendala dalam log tugas, yang dapat menyebabkan kesalahan kunci duplikat atau ketidakcocokan dengan jumlah catatan. Hal ini disebabkan oleh cara MySQL menangani data lokal dengan perintah. `LOAD DATA` Pastikan untuk melakukan hal berikut selama fase beban penuh: 
  + Nonaktifkan kendala
  + Gunakan AWS DMS validasi untuk memastikan data konsisten.
+ Saat Anda memperbarui nilai kolom ke nilai yang ada, MySQL-compatible database mengembalikan `0 rows affected` peringatan. Meskipun secara teknis perilaku ini bukan merupakan kesalahan, penanganan situasi ini berbeda dibandingkan mesin basis data lain. Misalnya Oracle melakukan update dari satu baris. Untuk MySQL-compatible database, AWS DMS buat entri dalam tabel kontrol awsdms\_apply\_exceptions dan mencatat peringatan berikut.

  ```
  Some changes from the source database had no impact when applied to
  the target database. See awsdms_apply_exceptions table for details.
  ```
+ Aurora Nirserver tersedia sebagai target untuk Amazon Aurora versi 2, kompatibel dengan MySQL versi 5.7. (Pilih Aurora MySQL versi 2.07.1 untuk dapat menggunakan Aurora Nirserver dengan kompatibilitas terhadap MySQL 5.7.) *Untuk informasi selengkapnya tentang Aurora Tanpa Server, lihat Menggunakan [Aurora Tanpa Server v2 di Panduan Pengguna Amazon Aurora](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html).*
+ AWS DMS tidak mendukung penggunaan titik akhir pembaca untuk Aurora atau Amazon RDS, kecuali instans dalam mode yang dapat ditulis, yaitu parameter `innodb_read_only` dan disetel `read_only` ke atau. `0` `OFF` Untuk informasi selengkapnya tentang penggunaan Amazon RDS dan Aurora sebagai target, lihat berikut ini:
  +  [Menentukan instans DB mana yang terhubung dengan Anda](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.BestPractices.html#AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection) 
  +  [Memperbarui replika baca dengan MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_MySQL.Replication.ReadReplicas.html#USER_MySQL.Replication.ReadReplicas.Updates) 
+ Saat mereplikasi tipe data TIME, sebagian fraksional dari nilai waktu tidak direplikasi.
+ Saat mereplikasi tipe data TIME dengan Atribut Koneksi Ekstra`loadUsingCSV=false`, nilai waktu dibatasi ke rentang. `[00:00:00, 23:59:59]`

## Pengaturan titik akhir saat menggunakan MySQL-compatible database sebagai target AWS DMS
<a name="CHAP_Target.MySQL.ConnectionAttrib"></a>

Anda dapat menggunakan pengaturan titik akhir untuk mengonfigurasi basis data MySQL-compatible target Anda mirip dengan menggunakan atribut koneksi tambahan. Anda menentukan pengaturan saat Anda membuat titik akhir target menggunakan AWS DMS konsol, atau dengan menggunakan `create-endpoint` perintah di [AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html), dengan sintaks `--my-sql-settings '{"{{EndpointSetting"}}: {{"value"}}, {{...}}}'` JSON.

Tabel berikut menunjukkan pengaturan endpoint yang dapat Anda gunakan dengan MySQL sebagai target.


| Nama | Deskripsi | 
| --- | --- | 
| `ConnectionTimeout` | Gunakan atribut koneksi tambahan (ECA) ini untuk mengatur batas waktu koneksi titik akhir untuk instance MySQL, dalam hitungan detik. Nilai bawaannya adalah 10 detik. Contoh ECA:`ConnectionTimeout=30`. | 
| ` TargetDbType` | Tentukan tujuan untuk migrasi tabel sumber pada target, baik untuk basis data tunggal atau beberapa basis data. Jika Anda menentukan`SPECIFIC_DATABASE`, Anda perlu menentukan nama database, baik saat menggunakan AWS CLI atau Konsol Manajemen AWS.<br />Nilai default: `MULTIPLE_DATABASES`<br />Nilai valid: {`SPECIFIC_DATABASE`, `MULTIPLE_DATABASES`} <br />Contoh: `--my-sql-settings '{"TargetDbType": "MULTIPLE_DATABASES"}'` | 
| `ParallelLoadThreads` | Meningkatkan kinerja saat memuat data ke database MySQL-compatible target. Menentukan berapa banyak thread untuk digunakan untuk memuat data ke dalam database MySQL-compatible target. Menetapkan sejumlah besar thread dapat memiliki efek yang berlawanan pada performa basis data, karena koneksi terpisah diperlukan untuk setiap utas. <br />Nilai default: 1 <br />Nilai valid: 1-5 <br />Contoh: `--my-sql-settings '{"ParallelLoadThreads": 1}'` | 
| `AfterConnectScript` | Menentukan script untuk menjalankan segera setelah AWS DMS terhubung ke titik akhir.<br />Misalnya, Anda dapat menentukan bahwa MySQL-compatible target harus menerjemahkan pernyataan yang diterima ke dalam kumpulan karakter latin1, yang merupakan kumpulan karakter default yang dikompilasi dari database. Parameter ini biasanya meningkatkan performa ketika mengonversi dari client UTF8.<br />Contoh: `--my-sql-settings '{"AfterConnectScript": "SET character_set_connection='latin1'"}'` | 
| `MaxFileSize` | Menentukan ukuran maksimum (dalam KB) dari setiap file.csv yang digunakan untuk mentransfer data ke database. MySQL-compatible <br />Nilai default: 32.768 KB (32 MB)<br />Nilai valid: 1-1.048.576<br />`--my-sql-settings '{"MaxFileSize": 512}'` | 

Anda juga dapat menggunakan atribut koneksi tambahan untuk mengonfigurasi basis data MySQL-compatible target Anda.

Tabel berikut menunjukkan atribut koneksi tambahan yang dapat Anda gunakan dengan MySQL sebagai target.


| Nama | Deskripsi | 
| --- | --- | 
| `Initstmt=SET FOREIGN_KEY_CHECKS=0;` | Menonaktifkan memeriksa kunci asing.<br />Contoh: `--extra-connection-attributes "Initstmt=SET FOREIGN_KEY_CHECKS=0;"` | 
| `Initstmt=SET time_zone` | Menentukan zona waktu untuk MySQL-compatible database target. <br />Nilai default: UTC <br />Nilai yang valid: Nama zona waktu yang tersedia di database MySQL target.<br />Contoh: `--extra-connection-attributes "Initstmt=SET time_zone={{US/Pacific}};"` | 

Atau, Anda dapat menggunakan `AfterConnectScript` parameter `--my-sql-settings` perintah untuk menonaktifkan pemeriksaan kunci asing dan menentukan zona waktu untuk database Anda.

## Tipe data target untuk MySQL
<a name="CHAP_Target.MySQL.DataTypes"></a>

Tabel berikut menunjukkan tipe data target database MySQL yang didukung saat AWS DMS menggunakan dan pemetaan AWS DMS default dari tipe data.

Untuk informasi tambahan tentang tipe AWS DMS data, lihat[Tipe data untuk AWS Database Migration Service](CHAP_Reference.DataTypes.md).


|  AWS DMS tipe data  |  Tipe data MySQL  | 
| --- | --- | 
| BOOLEAN | BOOLEAN | 
| BYTES | Jika panjangnya dari 1 sampai 65.535, maka gunakan VARBINARY (length). <br />Jika panjangnya dari 65.536 hingga 2.147.483.647 maka gunakan LONGLOB. | 
| DATE | DATE | 
| TIME | TIME | 
| TIMESTAMP | “If scale => 0 and =< 6, then: DATETIME (Scale)<br />If scale is => 7 and =< 9, then: VARCHAR (37)" | 
| INT1 | TINYINT | 
| INT2 | SMALLINT | 
| INT4 | INTEGER | 
| INT8 | BIGINT | 
| NUMERIC | DECIMAL (p,s) | 
| REAL4 | FLOAT | 
| REAL8 | DOUBLE PRECISION | 
| STRING | Jika panjangnya dari 1 sampai 21.845 maka gunakan VARCHAR (panjang).<br />Jika panjangnya dari 21.846 hingga 2.147.483.647 maka gunakan LONGTEXT. | 
| UINT1 | UNSIGNED TINYINT | 
| UINT2 | UNSIGNED SMALLINT | 
| UINT4 | UNSIGNED INTEGER | 
| UINT8 | UNSIGNED BIGINT | 
| WSTRING | Jika panjangnya dari 1 sampai 32.767 maka gunakan VARCHAR (panjang). <br />Jika panjangnya dari 32.768 hingga 2.147.483.647 maka gunakan LONGTEXT. | 
| BLOB | Jika panjangnya dari 1 sampai 65.535 maka gunakan BLOB.<br />Jika panjangnya dari 65.536 hingga 2.147.483.647 maka gunakan LONGBLOB.<br />Jika panjangnya 0, gunakan LONGBLOB (support LOB penuh). | 
| NCLOB | Jika panjangnya dari 1 sampai 65.535, gunakan TEXT.<br />Jika panjangnya dari 65.536 hingga 2.147.483.647, gunakan LONGTEXT dengan ucs2 untuk CHARACTER SET.<br />Jika panjangnya 0, gunakan LONGTEXT (support LOB penuh) dengan ucs2 untuk CHARACTER SET. | 
| CLOB | Jika panjangnya dari 1 sampai 65.535, gunakan TEXT.<br />Jika panjangnya dari 65.536 hingga 2.147.483.647, gunakan LONGTEXT.<br />Jika panjangnya 0, gunakan LONGTEXT (supportLOB penuh). | 