MySQLからMariaDBへの移行は、合理的な考えです。MySQLは初期のデータベース管理システム(DBMS)として長きにわたり市場をリードしてきましたが、その影響力は今も色褪せていません。

しかし、処理が遅く、複雑なデータを扱うには非効率であることから、利用者は徐々にMairaDBに注目し始めています。

MariaDBは、性能の向上、最先端の機能、複雑なデータセットへの対応力を備えた、より新しく軽量なデータベース管理システムです。MariaDBは、MySQLと比較しても、公開リポジトリを更新し、革新的な変更を行う、より活気のあるコミュニティも誇っています。

この記事では、MySQLからMariaDBへのデータ移行方法について詳しく解説します。

MySQLからMariaDBにデータベースを変更する方法

MySQLからMariaDBへの移行は、非常に簡単です。移行手順は大きく分けると2段階あります。

  1. MySQLデータベースをSQLファイルにダンプし、バックアップします。
  2. MariaDBサーバーにログインし、バックアップファイルを読み込んでデータベースを作成します。

MariaDBはMySQLと互換性があるので、問題なくデータベースが移行できるはずです。

データベースをMySQLからMariaDBに移行後、すべてのテーブルが正常に移行されているか再確認し、サイトの参照先データベースをMySQLからMariaDBへ変更すれば移行完了です。

必須条件

MySQLからMariaDBへ移行するには、まずはすでに使用中のMySQLデータベースが必要です。

当然ながら、MariaDBのコピーも持っている必要があります。必須ではありませんが、この記事ではphpMyAdminを使用していきます。phpMyAdminは、視覚的に利用できるオープンソースのデータベース管理ツールで、MySQLとMariaDBをブラウザ上で管理することができます。

phpMyAdmin
phpMyAdmin

phpMyAdminを利用するには、サーバー環境構築パッケージであるWAMPServerまたはXAMPPをインストールします。こうしたサーバーパッケージには、phpMyAdmin、MySQL、MariaDBがあらかじめインストールされており、本記事で必要なものすべてが揃います(XAMPPは、Windows、macOS、Linuxで利用可能)。

phpMyAdminをお持ちでない方も、ご安心ください。この記事では、MySQLとMariaDBで同じ動作を再現するためにターミナルで実行できるコマンドもご紹介します。

MySQLからエクスポート

まず、MySQLで対象データベースのバックアップを作成します。MySQLサーバーを起動し、phpMyAdminを使用してMySQLデータベースにログインします。WAMPやXAMPPからhttp://localhost/phpMyAdmin/にアクセスすると、phpMyAdminが利用できます。

phpMyAdminのログイン画面
phpMyAdminのログイン画面

MySQL環境に入ったら、バックアップしたいデータベースをクリックします。この例では、一般的なWordPressのテーブルを持つWordPressデータベースをエクスポートしていきます。

phpMyAdminのWordPressデータベース
phpMyAdminのWordPressデータベース

テーブル上部に表示された「エクスポート」タブをクリックし、フォーマットは「SQL」を選択します。後ほどMariaDBにインポートするファイルです。

WordPressのデータベースをSQL形式で書き出す
WordPressのデータベースをSQL形式で書き出す

実行」をクリックすると、データベースのバックアップがSQLファイルとしてローカルコンピュータにダウンロードされます。また、phpMyAdminをお持ちでない方や、コマンドを使用したい方は、以下のコマンドを使用して、データベースをSQLファイルにダンプしてください。your-nameyour-pass は、データベースのユーザー名とパスワードに置き換えてください。

 $ mysqldump --user=your-name --password="your-pass" wordpress > wordpress.sql

この場合、コマンドはWordPressデータベースのSQLコードを含む「wordpress.sql」という名前のバックアップファイルを作成します。

最後に、MySQLをアンインストールします。

MariaDBへインポート

まず、ローカルマシンにMariaDBがインストールされていることを確認します。WAMPやXAMPPなど、MariaDBがあらかじめインストール済みの環境を使用する場合、確認は不要です。

さて、いよいよMySQLからバックアップしたファイルをMariaDBにインポートします。サーバー管理画面からMySQLサーバーを停止します。MySQLサーバーからログアウトし、MariaDBサーバーにログインします(phpMyAdminへのログイン時、MySQLからMariaDBに切り替える)。

MariaDBサーバーのphpMyAdminのログインページ
MariaDBサーバーのphpMyAdminのログインページ

管理画面で、新しいデータベースを作成します。phpMyAdminの「新規作成」をクリックし、データベース名を付けて、「作成」をクリックします。

MariaDBを使ったphpMyAdminでのWordPressデータベース。
MariaDBを使ったphpMyAdminでのWordPressデータベース。

先ほど作成した新しいデータベースをクリックしたあと、画面上部の「インポート」タブをクリックし、「ファイルを選択」または「参照」をクリックしてバックアップファイルをインポートします。

WordPressのデータベースをインポートする
WordPressのデータベースをインポートする

実行」をクリックして、ファイルを読み込みます。処理にしばらく時間がかかることがありますが、完了するとメッセージが表示されます。

インポート完了の通知文
インポート完了の通知文

上記の操作をコマンドラインで行う場合は、以下の手順で行ってください。

まず、MariaDBサーバーにログインし、以下のコマンドで新規データベースを作成します。

$ mysql --user=your-name --password="your-pass" -e  "CREATE DATABASE wordpress";

バックアップファイルをMariaDBに読み込みます。

$ mysql --user=your-name --password="your-pass" --database=wordpress < wordpress.sql

MySQLからMariaDBへのファイルインポートが成功すると、カーソルが再びアクティブになります。

WordPressサイトでの更新

MySQLからMariaDBへの移行後、WordPressサイトが使用するデータベースを変更する必要があります。データベースの指定を変更するには、サイトのwp-config.phpファイルの情報を、新しいデータベースの内容に変更します。

// ** MariaDB settings** //

define('DB_NAME', 'database_name_here');
define('DB_USER', 'database_username_here');
define('DB_PASSWORD', 'database_password_here');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');

ファイルの変更を反映すると、WordPressサイトが新しいデータベースから情報を取得し始めます。

更新後のWordPressサイト
更新後のWordPressサイト

MariaDBとKinsta

MariaDBは最先端のデータベース管理システムとしての地位を確立しており、その進化はまだまだ続くと考えられています。Kinstaでは、MariaDBの潜在力に注目しており、高性能サーバースタックの要素としてMariaDBを採用し、卓越したサーバーパフォーマンスを実現しています。Kinstaのホスティングプランを通じて、最高かつ迅速なテクノロジーをご利用いただけます。

Kinstaなら、MariaDBを手軽に導入できます。データベースソフトウェアの更新、メンテナンス、エラーチェックなどを気にする必要はありません。Kinstaがこうした煩わしい作業をすべて代行しますので、お客様はサイト訪問者のための最高のコンテンツ制作に専念できます。

まとめ

MySQLからMariaDBへの移行手順は、とても簡単です。データベースをバックアップしてMySQLをアンインストールし、MariaDBをインストールしてデータベースのバックアップをインポートすればいいだけです。

ただし、MySQLからMariaDBへの移行の際、問題が発生することもあることに留意してください。例えば、MySQLのスキーマがMariaDBのスキーマと一致しない場合、エラーが発生することがあります。また、異なるバージョン間で移行する場合、mysql_upgradeを実行してください。もしうまくいかなければ、事前に両方のデータベースを最新版にアップデートしてから再試行すれば、ほとんどの問題は解決します。

MariaDBが革新を続けるにつれて、初歩的なレベルではMySQLとの互換性が低くなる可能性が高いです。ですから、MySQLを使っていて、さらなるメリットを求めてMariaDBへの移行を検討しているのであれば、早めの移行をおすすめします。

Kinstaのデータベースホスティングサービスでは、データベースをセットアップし、高速で安全な内部接続が使用可能です。

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.