はじめに

今回は、新しい環境に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ファイルから復元

というシンプルな手順になります。