2016年3月11日金曜日

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


0 件のコメント:

コメントを投稿