WordPressサイトのバックアップや、
動作確認のためのコピーサイトを作成することがよくあると思います。

ちょうど最近、
phpMyAdminでデータベースのエクスポートインポートを進めていたのですが、データベースの容量が重いせいか、なかなかうまくいかない状況に陥りました。

と、その時

ケーワンが誇るWebデザイナー友蔵による記事がUPされていたのを思い出します。

どうも友蔵です。 先日、WordPressで作った稼働中のサイトをテスト環境にコピーしたかったのですが、 プログラマーの方ならSSHコマンドでカンタンに出来るのでしょう

これですこれ!
さすが友蔵、痒いところに手がとどく仕事ぶりはブログでも輝いています。

早速ブログの手順通りに進めてすんなり解決…

か、解決しない。

どうやら他に原因があるようです。

そして、うっすらと脳裏を過る4文字の単語…

.

.

.

コマンド

.

.

.

ついに来たのかもしれません…

phpMyAdminに頼りきった自分を卒業し

真正面から黒い画面(※)に向き合う時が

※黒い画面とは
コマンドプロンプトと呼ばれる、主にプログラマーの方が使用するツールの画面のことを指す。普段の仕事で白い画面(テキストエディタと呼ばれるツール)ばかり使用しているWebデザイナーやコーダーが最も恐れている存在。Webデザイナーの口癖は、「おれはダークサイドには堕ちない。(逃げてるだけ)」

もう腹をくくってやるしかない!

と、システム課のCさんに教えてもらいながら作業を進めます…すると

ちょーカンタンやん!てか、はやっ!

って感じだったので、備忘録もかねてご紹介していこうと思います。

準備するもの


準備するものはこちらです。

コマンドプロンプト
windowsの方:コマンドプロンプト
macの方:ターミナル
それぞれ最初からインストールされてるハズです。

SSH接続情報
SSHホスト:k1host
SSHログインユーザー:k1user
SSHパスワード:k1sshpass
rootパスワード:k1rootpass

データベース情報
エクスポートするDBホスト:DBhost
エクスポートするDBユーザー:DBuser
エクスポートするDBパスワード:DBpass
エクスポートするDB名:DBname

上記情報を元にこれから説明していきますので、
実際に操作する際はご自分の情報に置き換えて進めてみてください。

ルート権限でSSH接続する


まずはお手持ちのコマンドプロンプトでssh接続します。
僕はmacユーザーですので、ターミナルと言うソフトを使って進めます。

$ ssh k1user@k1host

するとパスワードの入力を求められます。SSHのログインパスワードを入力します。
k1user@k1host's password: k1sshpassを入力

ログインできたら、ルート権限に切り替えます。
$ su -

ここでもパスワードの入力が求められます。
パスワード: k1rootpassを入力

これで準備はOKです!

データベースのエクスポート


WordPressのバックアップをとる際に必要なエクスポートも
このコマンド一つで完了してしまいます。
ここでは、保存するファイル名をnew_DBname.sqlとします
# mysqldump -u DBuser -p -h DBhost DBname > /任意のパス/new_DBname.sql

新しいデータベースの作成


テスト用にWordPressのコピーサイトを作る時など、
新しいデータベースを作成する際はまずmysqlに接続します。
# mysql -u DBuser -p

DBパスワードを求められますので、入力します。
Enter password: DBpassを入力

「wordpressDB_test」という名前で、新しくデータベースを作成します。
文字コードはutf-8に指定します。
mysql> CREATE DATABASE new_DBname CHARACTER SET utf8 COLLATE utf8_general_ci;

正しく作成されたかを確認すると、
mysql> show databases;

このように「new_DBname」が作成されています。
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| DBname             |
| new_DBname         |
+--------------------+
4 rows in set (0.00 sec)

データベースのインポート


先ほどエクスポートしたnew_DBname.sql
新しく作成した「new_DBname」にインポートします。
エクスポートした際と > の向きが逆になってるので注意が必要です。
mysql -u root -p -h DBhost new_DBname < /任意のパス/new_DBname.sql

まとめ


Webデザイナーの皆様はどうしても
サーバーサイドの話になると逃げ出したくなる問題
避けて通れないと思います。

ですが、覚えてしまえば意外とカンタン。
是非お試しください。

そして友蔵に言いたい。

SSHを使えばカンタンに終わるよ。

以上!!

さようなら。