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