既存の MySQL データベースから ServBay の MariaDB へデータをインポートする方法
ServBay は強力なローカル Web 開発環境であり、デフォルトのデータベース管理システムとして MariaDB を内蔵しています。MariaDB は MySQL と高い互換性があるため、既存の MySQL インスタンスから ServBay 提供の MariaDB へデータを移行するのは比較的簡単です。本記事では、MySQL データベースのエクスポートから ServBay 環境の MariaDB へのインポートまでの全手順を詳しく解説します。
概要
本ガイドは、開発者が既存プロジェクトやデータの MySQL データベースを ServBay の MariaDB へ移行し、ServBay 環境下でローカル開発やテストを継続的かつ快適に行うための手順を説明します。ServBay の利便性と高いパフォーマンスを最大限に活用しましょう。
想定される利用シーン
- 本番環境や他のローカルマシンで稼働している MySQL データベースを ServBay 環境に移行してローカル開発を行う場合
- 既存 MySQL データベースを ServBay の MariaDB インスタンスへ統合またはバックアップしたい場合
- ServBay 環境で MySQL データとの互換性を持つアプリケーションの動作をテストしたい場合
事前準備
作業を開始する前に、下記の条件を満たしていることを確認してください。
- MySQL がインストールおよび稼働中であること:エクスポート対象の既存 MySQL データベースインスタンスが必要です。接続情報(ホスト名、ポート番号、ユーザー名、パスワード)を把握しておきましょう。
- ServBay をインストール・起動済みであること:ServBay には MariaDB がバンドルされています。ServBay アプリが起動しており、MariaDB サービスが稼働中であることを確認してください。MariaDB の動作状態は ServBay の「パッケージ」リストで確認できます。
- ServBay MariaDB の接続情報:基本的に MariaDB は
127.0.0.1
(またはlocalhost
)の3306
ポートで動作し、通常はroot
ユーザーが利用されます。詳細な接続情報やroot
パスワードは ServBay の「データベース」タブに表示されています。初回利用時に必ず控えるか、必要に応じてパスワードを変更してください。 - データベース権限:MySQL からエクスポートするための権限、および ServBay MariaDB でインポートやデータベース作成の権限が必要です(通常は MariaDB の
root
ユーザーが十分な権限を持っています)。 - ターミナルの利用環境:コマンドラインからデータベースのエクスポート・インポート作業を行うため、macOS もしくは Linux のターミナルが使用できる必要があります。
ステップ1: ソース MySQL データベースからデータをエクスポート
まずは mysqldump
ツールを利用して、MySQL データベースを SQL ファイルとしてエクスポートします。
- ターミナルを開く:macOS のターミナルアプリを起動してください。
- ソース MySQL へ接続: ターミナルで次のコマンドを入力し、MySQL の接続パスワードを入力します。bash
mysql -u your_mysql_username -p -h your_mysql_host -P your_mysql_port
1your_mysql_username
を実際の MySQL ユーザー名に置き換えてください。your_mysql_host
を MySQL サーバのアドレス(例:localhost
または IP)に置き換えます。your_mysql_port
を MySQL のポート番号(デフォルト 3306 以外の場合)に変更します。- 同一マシンかつデフォルトポートであれば、
mysql -u your_mysql_username -p
だけでも接続できます。
- データベースのエクスポート:
mysqldump
コマンドを使用して対象データベースをエクスポートします。データベース名がmydatabase
の場合は以下の通りです。bashmysqldump -u your_mysql_username -p mydatabase > mydatabase.sql
1your_mysql_username
は実際のユーザー名、mydatabase
はエクスポート対象のデータベース名に変更してください。- このコマンドでカレントディレクトリに
mydatabase.sql
というファイルとしてデータベースがエクスポートされます。パスを指定したい場合は/path/to/your/directory/mydatabase.sql
のように記述できます。 - すべてのデータベースをエクスポートしたい場合は
--all-databases
オプションを利用可能ですが、慎重にご利用ください。 - 特定のテーブルだけエクスポートする場合は、データベース名の後にテーブル名を並べてください。
ステップ2: ServBay の MariaDB データベースの準備
データをインポートする前に、MariaDB 側で新しい空データベースを作成しておくことをおすすめします。
- ターミナルを開く:まだ開いていない場合はターミナルを起動します。
- ServBay の MariaDB へ接続: ServBay MariaDB の接続情報を使い、デフォルトでは
root
ユーザーと ServBay アプリ上のパスワードを使用します。bashmysql -u root -p -h 127.0.0.1 -P 3306
1- MariaDB の
root
パスワードは ServBay の「データベース」タブで確認できます。 - ポートやホストを変更している場合は、
-h
や-P
を実際の値に合わせて修正してください。
- MariaDB の
- 新しいデータベースの作成: MariaDB の SQL プロンプト上で、下記のように新しいデータベースを作成します。元の MySQL と同じ名前を推奨します(例:
mydatabase
)。sqlCREATE DATABASE mydatabase;
1mydatabase
は新しい環境で利用したいデータベース名に変更してください。
ステップ3: ServBay の MariaDB へデータをインポート
エクスポートした SQL ファイルを、作成済みの MariaDB データベースにインポートします。
- ターミナルを開く:
mydatabase.sql
ファイルにアクセスできるディレクトリから作業するか、絶対パスで指定してください。 - SQL ファイルのインポート:
mysql
コマンドを使って MariaDB へ SQL ファイルをインポートします。bashmysql -u root -p -h 127.0.0.1 -P 3306 mydatabase < mydatabase.sql
1- MariaDB の
root
パスワードが求められます。 mydatabase
はステップ2で作成したデータベース名、mydatabase.sql
はエクスポートしたファイル名や絶対パスに書き換えてください。
- MariaDB の
インポートの所要時間は SQL ファイルのサイズやデータベースの規模により異なります。コマンド実行中、特にメッセージが表示されなくても問題ありません。
ステップ4: データ移行後の確認
インポートが終わったら、ServBay の MariaDB に接続し、データが正しく移行されたか必ず確認しましょう。
- ServBay MariaDB へ再度接続:bash
mysql -u root -p -h 127.0.0.1 -P 3306
1- MariaDB の
root
パスワードを入力してください。
- MariaDB の
- 対象データベースの選択:sql
USE mydatabase;
1mydatabase
を実際にインポートしたデータベース名に置き換えます。
- データの確認: テーブル一覧やデータ件数など確認のため、以下のようなクエリを実行します。sql
SHOW TABLES; -- すべてのテーブルを表示 SELECT COUNT(*) FROM your_table_name; -- 任意テーブルの行数を確認 SELECT * FROM your_table_name LIMIT 10; -- 任意テーブルの先頭10件を表示
1
2
3your_table_name
を実際のテーブル名に置き換えてください。
期待どおりの結果であれば、インポートは成功です。
互換性に関する注意点と対応策
MariaDB と MySQL は高い互換性を持ちますが、ごくまれに下記のような互換性問題が発生する場合があります。必要に応じてご対応ください。
1. 特定 SQL 構文の非互換
一部の MySQL 独自構文や関数が MariaDB では利用できない・動作が異なることがあります。
- 対応策:エクスポート時やインポート時に構文エラーとなった箇所は、
mydatabase.sql
ファイルをエディタで開き、該当する SQL を修正してください。MariaDB の公式ドキュメントを参照し、置き換え可能な代替文法を調べて対応しましょう。
2. ストレージエンジンの非互換
MySQL と MariaDB は多様なストレージエンジン(InnoDB, MyISAM, Aria, XtraDB など)をサポートしますが、Archive や Blackhole など片側のみのエンジンは MariaDB 上で利用不可の場合があります。もっとも一般的な InnoDB
は問題ありません。
- 対応策:MariaDB で対応していないストレージエンジン利用時、インポート時に警告やエラーが発生します。その際は
.sql
ファイル上の不対応エンジン名をENGINE=InnoDB
など MariaDB が対応するエンジン名に置換してください。またはインポート後、MariaDB で次のようにエンジンを変更します。sqlALTER TABLE table_name ENGINE = InnoDB;
1
3. ユーザーと権限の取り扱い
mysqldump
でエクスポートした SQL ファイルには、ユーザーや権限情報は含まれない(または含まれていてもテーブル構造が異なるため直接反映できない)場合がほとんどです。ServBay の MariaDB には root
ユーザーが用意されているため、このユーザーで各種管理が可能です。
- 対応策:インポート後、アプリケーションが利用する専用ユーザーが必要な場合は、ServBay MariaDB 上で新規ユーザー作成と権限付与を行います。次のような SQL を実行してください。sql
-- 新規ユーザーの作成('your_username', 'localhost', 'your_password' 部分を適宜変更) CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password'; -- 対象データベース全体の権限付与 GRANT ALL PRIVILEGES ON mydatabase.* TO 'your_username'@'localhost'; -- 権限の再読み込み FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8your_username
、localhost
(接続元に応じてlocalhost
や%
)、your_password
、mydatabase
を実際の内容に変更してください。- ServBay MariaDB の root パスワードを忘れた場合でも、ServBay には MariaDB や PostgreSQL の root パスワード再設定機能があります。詳細は ServBay アプリや公式ドキュメントをご覧ください。
まとめ
既存の MySQL データベースを ServBay の MariaDB にインポートすることで、ローカル開発ワークフローを ServBay 環境へスムーズに移行できます。mysqldump
でのデータエクスポート、MariaDB 側での新規データベース作成、mysql
コマンドでのインポート、そして検証まで、一連の流れを確実にこなすことで、各種互換性問題にも柔軟に対応しながら移行作業を進められます。この記事の手順を活用し、ServBay 上で効率的な Web 開発を継続してください。