ターミナルから行うWordPressデータベースのエクスポートと復元の方法
SSHでサーバーへ接続して、WordPressデータベース(MySQL)のエクスポートをとったり復元したりする方法のメモです。
データベースのエクスポートとインポートにはphpMyAdminを使用する場合が多いかと思います。直感的に使えるのでとても便利ですが、データの容量が大きい場合等にエラーになってしまい使えない時があります。そんな時や、管理画面にログインするのが面倒な時にターミナルからダウンロード&アップロードすると素早くできます。
データの容量が大きくてダウンロードなどに不都合な場合は、SSHで対応する以外にも方法があるので、やりやすい方法で行うとよいと思います。
ターミナルからの操作は不慣れでいろいろなサイトを参考にさせて頂きました。ありがとうございます。
ターミナルからデータベースのバックアップをとる
ターミナルを起動してから、サーバーへSSHで接続します。
ssh ユーザー名@ホスト -p ポート
*ヘテムルはSSHで接続する場合には、ホストが別途SSH用のものになりました。また管理画面よりSSHアカウントを作成する必要があるようです。
ヘテムルの場合、SSHへの接続は以下のようなコマンドになります。
ssh ユーザー名@sshホスト名.heteml.jp -p 2222
サーバーのルートディレクトリにファイルをエクスポート
以下のようにコマンドを打ち込むとデータがエクスポートできます。このコマンドを実行する時点ではmysqlにはログインしていない状態でないとエクスポートできないので注意です。
mysqldump -h mysqlサーバーホスト名 -u ユーザー名 -p --default-character-set=binary -p データベース名 > wp_dump.sql
※–default-character-set=utf8 は文字化けしないようにするために指定。
mysqlサーバーホストとユーザー名はサーバーの管理画面などで確認できると思います。”wp_dump.sql” のファイル名は任意のもので大丈夫ですが、拡張子を .sql にします。上記のように打ち込むとサーバーのルートディレクトリに sql ファイルが生成されます。FTPなどでサーバーからダウンロードして完了です。
指定のフォルダへ入れる
生成されるファイルを指定のフォルダへ入れたい場合は以下のように、フォルダへのパスを指定して打ち込みます。
mysqldump -h mysqlサーバーホスト名 -u ユーザー名 -p --default-character-set=binary データベース名 > www/dump_file/wp_dump.sql
テーブルを指定する
テーブルを指定してダウンロードもできます。テーブルを指定するには以下のようにデータベース名の後にテーブル名を付けます。
mysqldump -h mysqlサーバーホスト名 -u ユーザー名 -p --default-character-set=binary データベース名 テーブル名 > wp_dump.sql
SQLファイルをデータベースへ復元する
ダウンロードしたSQLファイルをサーバーのルートディレクトリにアップロードし、ターミナルから以下のコマンドを打ち込みます。
mysql -h mysqlサーバーホスト名 -u ユーザー名 -p データベース名 < wp_dump.sql
エラー等がでなければ正常にインポートできているかと思います。
次に、wp_options テーブルの以下の項目を書き換えます。
option_name=siteurl(option_id=1)の option_value を書き換える。
update wp_options set option_value='http://ドメイン' where option_name='siteurl' ;
option_name=home(option_id=37)の option_value を書き換える。
update wp_options set option_value='http://ドメイン' where option_name='home' ;
もしインストールフォルダを別にする場合は option_name=home の値を変えて下さい。
これでなんとかphpMyAdminを使わずにデータベースの移動ができました。なれないとターミナルからの操作はこわいですね。
2 Comments & Tracbacks