はじめに
今回は、新しい環境にMySQLのデータを移行する機会があったため、その時の手順をまとめました。
目次
1. 旧環境でバックアップファイルを作成する
まずは旧環境側で、MySQLデータベースのバックアップファイル(.sql)を作成します。
MySQLには「mysqldump」というバックアップ用コマンドが用意されています。
これを使うことで、DBの構造やデータを1つのSQLファイルとして保存できます。
mysqldump -u ユーザー名 -p DB名 > backup.sql
このファイルが「データベース本体」のような役割になります。
2. バックアップファイルを新環境へ移行する
作成した backup.sql を新しい環境へ移動します。
今回は軽量だったためUSBを利用しました。
3. 新環境にMySQLをインストールする
次に、新環境へMySQLをインストールします。
可能であれば、旧環境と同じバージョンを利用するのがおすすめです。
バージョン差が大きいと、文字コードや構文で問題が出る場合があります。
MySQLインストール後は、まずrootユーザーでログインします。
mysql -u root -p
次に、移行先DBを作成します。
CREATE DATABASE DB名;
今回はrootユーザーのみで運用せず、専用ユーザーも作成しました。
セキュリティ的にも、アプリ専用ユーザーを分ける方がおすすめです。
CREATE USER 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード';
続いて、DB操作権限を付与します。
GRANT ALL PRIVILEGES ON DB名.* TO 'ユーザー名'@'localhost';
最後に変更を反映します。
FLUSH PRIVILEGES;
4. 新環境でデータベースを復元する
最後に、移行した backup.sql を使ってDBを復元します。
ここでは「コマンドプロンプト(cmd)」を利用するのがおすすめです。
PowerShellではリダイレクト記号「<」が正常に動かない場合があります。
mysql -u ユーザー名 -p DB名 < backup.sql
パスワード入力後、データベースが復元されます。
復元後は、ログインして確認しておくと安心です。
mysql -u ユーザー名 -p
5. おわりに
今回は、MySQLデータベースを新しいPC・環境へ移行する方法を復習しました。
流れとしては、
- 旧環境でバックアップ作成
- バックアップファイルを移動
- 新環境でDB作成
- SQLファイルから復元
というシンプルな手順になります。