カテゴリー
Data base

hetemlでSSHを使ったDBのエクスポート&インポート

友人に「最近こんな仕事をしているんだ」とWPやMTの踏み込んだ実装やサーバーの話したら、「もうデザイナーちゃうやん」と言われました。世の中のデザイナーはデザイン仕事で、コーディング、CMS実装はまた別のお仕事らしいですが、コーディング&実装をセットでやる人って珍しいらしいですよ、奥さん。そんなお仕事を今しております。
で。そんなわけで、デザイナーの仕事じゃないような防備録。hetemlサーバーでSSHを使ってデーターベースを引っこ抜き、もう一回入れる方法の防備録。
というのも、DBのサイズがでかくなるとphpMyAdminではエクスポートしてくれないことが多くなるので、コマンドラインを叩いて作業をする必要があるため。
使用するのは、hetemlサーバー、Tera Term。
hetemlの管理画面にアクセスし、右のサイドナビから「データーベース」「SSHアカウント」を開いておく。Tera termの設定方法は、hetemlのこちらから確認して設定。

▼エクスポート

ログインしたら「-bash-4.1$」と表示されるので、ここからコマンドラインの世界。DB情報等を下記のように書き込む。

mysqldump --single-transaction -u {mysqlのアカウント名} -p{mysqlのパスワード} -h {mysqlサーバー名} 対象DB名 > 出力先.sql


ポイントは-pとパスワードの間には半角スペースは入れないこと。
例えば、
・mysqlのアカウント名・・・_AAA
・mysqlのパスワード・・・BBB
・mysqlサーバー名・・・ mysql999.heteml.jp
・エクスポート先のDBファイル名・・・CCC(※任意)
とするならば、上記のコマンドは以下のようになる。

mysqldump --single-transaction -u _AAA -pBBB -h mysql999.heteml.jp _AAA > CCC.sql


吐き出されたDBはDDD.sqlという名前で、最上位フォルダ(※公開ディレクトリの/web/より一つ上)に生成されるので、それをローカルに落としておく。

▼インポート

インポートの場合は、最上位フォルダ直下にインポートさせるsqlファイルをまずアップしておく。そしてコマンドラインは以下の通り。

mysql -u [ユーザ名] -p[パスワード] -h [ホスト名] [データベース名] < [インポートするファイル名]


インポートと同じように-pとパスワードの間には半角スペースは入れないことと、ファイル名の前の記号が「>」「<」と異なっているので注意。
例えば、
・mysqlのアカウント名・・・_XXX
・mysqlのパスワード・・・YYY
・mysqlサーバー名・・・ mysql000.heteml.jp
・インポートするDBファイル名・・・ZZZ
とするならば、上記のコマンドは以下のようになる。


mysql -u _XXX -pYYY -h mysql000.heteml.jp _XXX < ZZZ.sql


カテゴリー
Data base Wordpress

[WP]サーバー引越の際のDBの書き換えで楽をする方法

以前のWordpressの引越はDBを触らないといけなかった。これはシステム関係に疎いデザイナーにとっては、phpMyAdminを触らないといけないという恐怖の仕事であり、できるなら移管後に構築をしたいと思った物である。

それが、最近ではスクリプトで一括で処理ができるようになったらしい。便利な世の中である。

参考になるのが「ドメイン変更を伴うWordPressサイトのサーバー移転方法」でも書かれている「DATABASE SEARCH AND REPLACE SCRIPT IN PHP」を使用。これがあれば、とりあえずは動く所まで基本持っていける。

それでもphpMyAdminを触らざるを得ない時もある。
その時は下記の構文で一括置換で頑張るしかない。

update テーブル名 set カラム名 = replace(カラム名, “置換前の文字列”, “置換後の文字列”)

サンプルとしては、

UPDATE wp_posts SET post_content=REPLACE(post_content,"old.example.com","new.example.com");

テーブル「wp_posts」の、カラム「post_content」の「old.example.com」を、「new.example.com」に置き換える、っていう処理ですな。