PR

コマンドオンリーでmysqlのデータを移行する方法

備忘録
fancycrave1 / Pixabay
記事内に広告が含まれています。
mysqlのデータを移行する機会がありましたので
その時の手順をまとめておきたいと思います。

データ移行の方法

データ移行の方法としては「GUIで行う方法」と「CUIで行う方法」があります。

GUIで行う方法

グラフィカルユーザインタフェースという意味で、phpMyAdminなどで移行する方法があります

CUIで行う方法

キャラクタユーザインタフェースという意味で、TeraTermなどでサーバに接続し、コマンドで移行する方法となります。
コマンドに慣れた方であれば「CUIで行う方法」の方がサクッと出来ると思います。
今回はそちらの手順を紹介させて頂きます。
WordPressなどサイトを運営している場合、サーバ変更したい場合に
データ移行作業が発生します。
その時の参考などにして頂けると良いかと思います。
今回はWordPressで運営していたサイトで、サーバ移行があり、データ移行を行いました。
参考にして頂ければと思います。

旧サーバで対応

まずは旧サーバでの準備作業です。
データバックする場合、サイトは停止しておく必要があります。

データバックアップ

DB接続確認

$ mysql -h localhost -P 3306 -u user -d dbname -p
コマンドオプション
-h:サーバーホスト
-P:ポート
-u:ユーザー名
-d:データベース
-p:パスワード

移行するテーブル確認

mysql> SHOW TABLES;

エクスポート

$ mysqldump --single-transaction -h localhost -P 3306 -u user dbname -p > backup.sql
コマンドオプション
–single-transaction:サーバーからデータをダンプする前に BEGIN SQL ステートメントを発行
-h:サーバーホスト
-P:ポート
-u:ユーザー名
-p:パスワード
これでデータのエクスポートは完了です。

新サーバで対応

移行後のサーバでの対応を説明します。

事前準備 ユーザとデータベース作成

データを移行する前に箱を作っておく必要があります。

rootで接続

$ mysql -h localhost -u root -p
コマンドオプション
-h:サーバーホスト
-u:ユーザー名
-p:パスワード

ユーザ作成

mysql> CREATE USER user IDENTIFIED BY 'password';

データベース作成

mysql> CREATE DATABASE `dbname` DEFAULT CHARACTER SET UTF8;
mysql> GRANT ALL ON dbname.* TO user@localhost IDENTIFIED BY 'password';
mysql> EXIT;

データインポート

インポート

$ mysql -h localhost -P 3306 -u user -d dbname -p < backup.sql
コマンドオプション
-h:サーバーホスト
-P:ポート
-u:ユーザー名
-d:データベース
-p:パスワード
これでデータ移行は完了です。
あとは移行前後でデータがきちんと移行されているか確認を行います。
WordPressでいえば以下を確認すれば良いかと思います。
・最新の記事が移行されている
・過去の全記事が移行されている
・管理画面の設定内容が移行前後で変わっていない
など
今回の手順は個人用途でのまとめになります。
本記事を参考に作業して、データ消失など何らかの不利益を被った場合、責任は負いかねますので予めご了承ください。
最後まで読んで頂いてありがとうございます!

コメント