

# MySQL DB スナップショットから MariaDB DB インスタンスへのデータ移行
<a name="USER_Migrate_MariaDB"></a>

AWS マネジメントコンソール、AWS CLI、または Amazon RDS API を使用して、RDS for MySQL DB スナップショットを MariaDB を実行している新しい DB インスタンスに移行できます。MySQL 5.6 か 5.7 を実行している Amazon RDS DB インスタンスから作成された DB スナップショットを使用する必要があります。RDS for MySQL DB スナップショットを作成する方法については、「[Amazon RDS のシングル AZ DB インスタンスの DB スナップショットの作成](USER_CreateSnapshot.md)」を参照してください。

スナップショットの移行は、スナップショットを取得した元の DB インスタンスには影響しません。元の DB インスタンスの代わりとしてトラフィックを転送する前に、新しい DB インスタンスをテストして検証できます。

MySQL から MariaDB に移行した後、MariaDB DB インスタンスは、デフォルトの DB パラメータグループやオプショングループに関連付けられます。DB スナップショットを復元した後、新しい DB インスタンスにカスタム DB パラメータグループを関連付けることができます。ただし、MariaDB パラメータグループには異なる設定可能なシステム可変があります。MySQL と MariaDB のシステム可変の違いについては、「[MariaDB と MySQL のシステム可変の違い](https://mariadb.com/kb/en/system-variable-differences-between-mariadb-and-mysql/)」を参照してください。DB パラメータグループの詳細については、[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md) を参照してください。オプションのグループの詳細については、[オプショングループを使用する](USER_WorkingWithOptionGroups.md) を参照してください。

## 移行の実行
<a name="USER_Migrate_MariaDB.Migrating"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、RDS for MySQL DBスナップショットを新しいMariaDB DBインスタンスに移行できます。

### コンソール
<a name="USER_Migrate_MariaDB.CON"></a>

**MySQL DB スナップショットを MariaDB DB インスタンスに移行するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) を開きます。

1. ナビゲーションペインで、[**Snapshots**] を選択し、移行する MySQL DB スナップショットを選択します。

1. 「**アクション**」で「**スナップショットの移行**」 を選択します。「**Migrate Database**」 ページが表示されます。

1. [**Migrate to DB Engine**] で、[**mariadb**] を選択します。

   Amazon RDS は** DB エンジンバージョン**を自動的に選択します。DB エンジンバージョンを変更することはできません。  
![\[Amazon RDS コンソールの、MySQL から MariaDB に移行する [データベースの移行] ページ。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/MigrateMariaDB.png)

1. 残りのセクションで、DB インスタンス設定を指定します。各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

1. **移行** を選択します。

### AWS CLI
<a name="USER_Migrate_MariaDB.CLI"></a>

MySQL DB スナップショットから MariaDB DB インスタンスにデータを移行するには、以下のオプションを指定して AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) コマンドを実行します。
+ --DB インスタンス識別子 - DB スナップショットから作成される DB インスタンスの名前。
+ --db-snapshot-identifier - リストア元の DB スナップショットの識別子。
+ --engine - 新しいインスタンスに使用するデータベースエンジン。

**Example**  
Linux、macOS、Unix の場合:  

```
1. aws rds restore-db-instance-from-db-snapshot \
2.     --db-instance-identifier newmariadbinstance \
3.     --db-snapshot-identifier mysqlsnapshot \
4.     --engine mariadb
```
Windows の場合:  

```
1. aws rds restore-db-instance-from-db-snapshot ^
2.     --db-instance-identifier newmariadbinstance ^
3.     --db-snapshot-identifier mysqlsnapshot ^
4.     --engine mariadb
```

### API
<a name="USER_Migrate_MariaDB.API"></a>

MySQL DB スナップショットから MariaDB DB インスタンスにデータを移行するには、Amazon RDS API オペレーション [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) を呼び出します。

## MariaDB と MySQL の間の非互換性
<a name="USER_Migrate_MariaDB.Incompatibilities"></a>

MySQL と MariaDB の間の非互換性は以下のとおりです。
+ MySQL 8.0 で作成した DB スナップショットは MariaDB に移行できません。
+ ソース MySQL データベースで SHA256 パスワードハッシュを使用している場合、MariaDB データベースに接続する前に SHA256 でハッシュ化されたユーザーパスワードをリセットしてください。次のコードは、SHA256 でハッシュ化されたパスワードをリセットする方法を示しています。

  ```
  SET old_passwords = 0;
  UPDATE mysql.user SET plugin = 'mysql_native_password',
  Password = PASSWORD('new_password')
  WHERE (User, Host) = ('master_user_name', %);
  FLUSH PRIVILEGES;
  ```
+ RDS マスターユーザーアカウントが SHA-256 パスワードハッシュを使用している場合、AWS マネジメントコンソール、[https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI コマンド、または [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API オペレーションを使用してパスワードをリセットしてください。DB インスタンスの変更については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ MariaDB では、Memcached プラグインはサポートされていません。ただし、Memcached プラグインで使用されるデータは InnoDB テーブルとして保存されます。MySQL DB スナップショットを移行した後、SQL を使用して Memcached プラグインで使用されるデータにアクセスできます。innodb\$1memcache データベースに関する詳細については、「[InnoDB memcached Plugin Internals](https://dev.mysql.com/doc/refman/8.0/en/innodb-memcached-internals.html)」を参照してください。