*

【WordPress】phpMyAdminを使った移行でsqlインポートが「504 Gateway Time-out」で出来ない場合 SSHのコマンドラインで直接やっちまえ

例によってタイトル激長でうざいですが。。。

WordPressのサーバ移行は意外とよくやりますので、やり方に関しては慣れておくのがよいでしょう。





WordPressの移行方法はググればたくさん出てくる


基本的なやり方はいろいろなサイトで紹介しております。

WordPressの管理画面のエクスポート・インポート機能を使ったやり方や

サイト移転時にWordPress記事をXML形式でエクスポート&インポートする手順



もっとガッツリと完璧にやりたい人でphpMyAdminからデータベースをぶっこ抜くやり方など

プラグインを頼らずWordPressのサーバー移行。新ドメインでも大丈夫!


phpMyAdmin Starter
phpMyAdmin Starter
posted with amazlet at 14.11.26
Packt Publishing (2012-04-02)


それぞれご自身にあわせて行っていただければと思います。

また、それと同時にバックアップもちゃんととっておくことがデータ消失の保険としてもそうですが。。。

サーバ移行の際も楽になるのでぜひおすすめします。

今こそ安心できるWordPressバックアップを!復旧作業まで実際にやってみたWordPress丸ごとバックアップ法




phpMyAdminからsqlファイルインポート時にエラーが出る


で、基本的な移行の流れは上記サイトなどを参考に進めるとして。

で、今回はphpMyAdminを使った移行の際に困ったことが起きることがあります。

  1. 移行「元」のサーバのDBをphpMyAdminでsqlファイルをエクスポート
  2. 移行「先」のサーバのDBにエクスポートしたsqlファイルをインポート

とやるのですが2番目の移行「先」のサーバのDBにエクスポートしたsqlファイルをインポートの際に。。。

sqlファイルの容量が大きかったりサーバが遅かったりすると

504

こんな感じでインポート中にエラーになっちゃうことがあります。





これはウェブサーバーがApacheじゃなくてnginxの時に、phpMyAdminでインポートするファイルの上限が2,048KiBのためです。

phpMyAdmin+nginxでインポートできるファイル(sql)サイズ最長 2,048 KiBを変更


マスタリングNginx
マスタリングNginx
posted with amazlet at 14.11.26
Dimitri Aivaliotis
オライリージャパン
売り上げランキング: 46,839

上で紹介したブログでは、この上限を増やすようにphp.iniを書き換えて解決しているのですが、


  • レンタルサーバによっては触れなかったり
  • なんかいじってphp動かなくなると怖い

なんて時に、解決する方法です。



【余談】KiBやMiBって聞いたこと無い単位


KBやMB、GBって単位は聞いたことあるけど。。。

  • KiB
  • MiB
  • GiB

ってなんやねん!?という人のために。詳しく説明しているページがあるので。。。

今だから言うけど、KiBとかMiBとかGiBとか

1024byteが1KiBだっていうのは知ってたんだけど、何故かその上の単位について、

1000KiB → 1MiB
1000MiB → 1GiB
以下同様

だとばかり思い込んでた ・・・根本的な部分を理解してない悪例。
正しい知識を求めてくる人のために書いておくと、
10進数の単位が
KB(1KB=10の3乗byte=1,000byte)
MB(1MB=10の6乗byte=1,000,000byte)
GB(1GB=10の9乗byte=1,000,000,000byte)
…、
2進数の単位が
KiB(1KiB=2の10乗byte=1,024byte)
MiB(1MiB=2の20乗byte=1,048,576byte)
GiB(1GiB=2の30乗byte=1,073,741,824byte)
…、
という事で、冒頭に立ち戻ると正しくは以下。
1024byte → 1KiB
1024KiB → 1MiB
1024MiB → 1GiB


まあ参考までに




SSHでサーバに接続して直接sqlをインポートしちゃえ


というわけで、具体的にどうするのかと言えばnginx+phpMyAdminでインポートするファイルの上限が2,048KiBなので。。。

phpMyAdminを使わずに直接Linuxのコマンドラインで、sqlをインポートしてやればOKでやんす、というわけです。


今回はSSHでサーバに接続して、インポートするように命令をしてあげましょう。


実用SSH 第2版―セキュアシェル徹底活用ガイド
Daniel J. Barrett Richard E. Silverman Robert G. Byrnes
オライリー・ジャパン
売り上げランキング: 542,479


検証環境(というかボクがやった環境)はさくらのレンタルサーバスタンダードになりますので、それを前提に。




ツールを揃える


といっても2つだけで、さらにほとんどの方は一つだけです。

FTPソフト


一つ目がファイルをサーバにアップロードやダウンロードするためのFTPソフトなんですが、ウェブサイトの運営をしている方であれば何らかのFTPソフトを既に使っているでしょう。

もし使ってなければ、フリーウェアであれば一番有名なFFFTPなんかを適当に。


またボクが使っているのはNextFTP4ってやつで、新規で購入すると2,480円(税別)ってやつです。

next

FFFTPを前は使っていたのですが、前の脆弱性のニュースを機に乗り換えました。

FFFTPと画面構成などは近く乗り換えやすいのと、設定が細かく出来るのに加えて、エラーで止まることが少ないように個人的には思いますので、お薦めです。



SSHクライアントソフト


これはあんまり持っていない人も多いと思いますが、SSHでサーバに接続するためのクライアントソフトです。

前にこの記事で紹介したTera Termなどが有名ですが。

【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 予備知識版
【バーチャルホスト】サブドメイン・DNSの設定覚書 設定(サーバ)編 いざ!版


今回はさくらインターネットのFAQページでも紹介されているPoderosaというソフトで説明していきます。

poderosa



手順1.移行「元」サーバからsqlファイルをエクスポートし、サーバにFTPでアップする


では、行っていきます。まず最初に移行「元」のサーバでphpMyAdminより、sqlファイルをエクスポートしてください。ここまでは特に普通です。

エクスポートする際の設定などはここを参考にするとよいでしょう。


WordPress初心者講座「phpMyAdminを使ったデータベースのバックアップと復元」

phpmyadmin07


ここまでは通常の移行と同じですが、ここからが少し方法が変わります。

この後に本来であれば、移行「先」のサーバのphpMyAdminでさっき移行「元」からエクスポートしたsqlをインポートしてちゃんちゃん、なのですが。

冒頭で触れたように、この容量が2,048KiBよりも大きいとインポート出来ないのです。

そこで、これをただ単にFTPで、移行「先」のサーバにアップロードしちゃいましょう!

アップロード先はとりあえず、さくらインターネットのレンタルサーバであれば

home/(アカウント名)

配下あたりがいいでしょう。仮に

  • アカウント名がyourname
  • ダウンロードしたsqlファイルが「db.sql」

ならば

home/yourname/db.sql

こんな感じでサーバに入れます。




手順2.PoderosaでサーバにSSHで接続する


これに関しては、さくらインターネットのFAQページを参考に進めていただければと思います。

nagare00




手順3.コマンドラインでsqlファイルを目的のDBにインポート


ここまでくれば、あとはPoderosaでコマンドを一行打てば終わりです。

なのですが、その前にいろいろと調べる必要があります。

ここまでの確認として


  • さくらのアカウント名「yourname」
  • sqlファイル「db.sql」
  • sqlファイルのディレクトリ「home/yourname/db.sql」

まずログインしてきた自分がどのディレクター構造にいるのか?を確認します。


使用するコマンドは「pwd」で、


$ pwd
home/yourname

実際のPoderosaのスクショがこんな感じです。

koma01

【注意】ドルマーク($)やパーセント(%)は、UNIX(Linux)コマンド・プロンプトという意味合いです。
クライアントソフトによって異なります。(Poderosaは見ての通り%)
このサイトに限らず、これらは実際に入力する必要はない、というかはじめから出ているです、はい。



さくらのレンサバのひとはみんなこの位置に最初はいると思います。

で、次に自分の位置にどんなファイルがあるかを一覧表示するのが「ls」コマンドで


$ pwd
home/yourname
$ ls
MailBox         fml             tmp
db              ports           www
db.sql          sblo_files

こんな感じで自分のいる場所のファイルの一覧が出ます。

さくらのレンサバだと、だいたいこういったディレクトリやファイルの構造になっていると思われます。

ちゃんと自分がアップロードした「db.sql」があることも確認して下さい。

さくらのレンサバですとぼくと同じ手順で行けば大丈夫ですが。。。

違う環境だとSSH接続後最初の場所が違ったりする場合があるので、その時は移動のコマンド「cd」を使って

このディレクトリ(yourname)に入る

$ cd yourname

一つ上の階層に行く

$ cd ..

と動いて、目的のsqlファイルと同じところまで移動してください。

と、ここまでくれば、あとは魔法の一行を書いて終わりです。

魔法の一行のために、更に調べることがデータベースの情報です。

レンサバのコントロールパネルなどや、過去にWordPressインストしてたりすれば「wp-config.php」なんかに自分で書いてたりします。

で、一応仮ということで以下と過程します。


  • さくらのアカウント名「yourname」
  • sqlファイル「db.sql」
  • sqlファイルのディレクトリ「home/yourname/db.sql」
  • データベースサーバ「mysql***.db.sakura.ne.jp」(さくらはこの形)
  • データベースユーザー名「yourname」(さくらはアカウント名と一緒)
  • データベース名「yourname_***」(さくらはアカウント名にアンダーバーの後に任意の文字)

自分の環境に応じてそれぞれ書き換えてください。

では魔法の一行はこれだ!ワンツースリー(古い)


$ pwd
home/yourname
$ ls
MailBox         fml             tmp
db              ports           www
db.sql          sblo_files
$ mysql -h mysql***.db.sakura.ne.jp -u yourname -p yourname_*** < db.sql
Enter password: 

そうすると上のようにパスワードを求められますので、データベースの接続パスワードを入力してEnterしてください。

【注意】ここでパスワードを入力しても文字は出ませんし伏せ字(****)なども出ませんのでご注意を。画面はなんにも変化しません。

パスワードが間違うと


$ pwd
home/yourname
$ ls
MailBox         fml             tmp
db              ports           www
db.sql          sblo_files
$ mysql -h mysql***.db.sakura.ne.jp -u yourname -p yourname_*** < db.sql
Enter password: 
ERROR 0000 (00000): Access denied for user 'yourname'@'xxx.xxx.xxx.xxx' (using password: YES)

みたいな感じでエラーがでます。正しければそのまま何も起こらず、コマンドが打てなくなります。

インポート中なので、触らずにそのまま待っていましょう。

完了するとまたコマンドが打てる状態になります。


ちゃんとインポートされているかどうか、phpMyAdminでチェックしてみてください。


ではでは、このへんで








関連記事

TwitterやFacebookとかでプロフィール写真をアニメのキャラや自分の子供の写真にすること

Twitterのプロフィール写真をアニメのキャラや自分の子供の写真にしている人がままいます。

記事を読む

lightbox(ライトボックス)のバージョン2.51からPrototypeじゃなくてjQueryになったから設置の時注意

lightbox(ライトボックス)について前記事を書きました。 lightboxって何?って感

記事を読む

起業するときにおすすめのサービス【PCFAXでペーパーレス】 02

前回のやつ 前回の流れから、ミニマムに商売をはじめるためのおすすめのサービスの紹介です。

記事を読む

【WordPress】Contact Form 7でEnterキーを押すと勝手に送信されてしまう問題を解決する魔法のコード(JavaScript)

アイキャッチ画像はギャグとして(笑) 就職活動中の女子大生にJavaとJavaScri

記事を読む

お金がなくて、時給が低いことの楽しさ

こんなサイトをたまたま見つけました。 はじめての自作PCで自宅サーバーをはじめた PCケ

記事を読む

愛車 エブリー

20年戦士のオンボロ愛車をパワーアップ(スズキ・エブリーにNARDI取り付け)

少し前にカーステを取り替えた愛車の青春カー! ※青春カーの命名はN君です。

記事を読む

「ssh port 変更 さくら 専用サーバ できない」 などのワードで検索引っかかってこい

ずーと前からさくらの専用サーバのsshのポートを22から変更しなくちゃ危ないって思っていたけど、人間

記事を読む

【ユーザー車検】軽トラを無料でGETしたけど車検代が無いから初の軽自動車ユーザー車検に挑戦!

青春カーと悲しい別れ どうも。貧乏が板に付いてきて久しい僕です。 そのため、青春カー

記事を読む

【PHP】時間を扱うときはdate_default_timezone_set(‘Asia/Tokyo’);を入れよう

タイトルそのまんま。そんだけ。 日本国内のサービスでphpで時間を扱うときは、サーバの設定いじ

記事を読む

「いま、IS01を想う。」に想う。。。おっさんくさい話。

川脇議員に貴重なお時間を割いていただき、インタビューをさせて頂いたのですが。 知多市議会議員「

記事を読む

Comment

  1. 瑠々 より:

    さくらサーバー使用者です。
    sqlファイルが大きすぎてインポート出来ずにここのたどり着きました。
    こちらの方法で試させていただき、お陰様でスムーズにインポートさせることができ大変助かりました。
    多謝でございます。
    ありがとうございました。

Message

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  • 高橋拓郎(33歳)
    愛知県知多市生まれ。
    大学在学中に個人で始めた事業を、大学院中退後法人化(法人化のために中退が正しいかも)。
    簡単にコンタクトとれるのでt@takuro.infoまで何か御用があればなんなりと。
    ブログの感想やご意見も大歓迎です!
PAGE TOP ↑