*

【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でチェックしてみてください。

ではでは、このへんで

関連記事

Amazonの神対応に触れて~月曜始まり縦6行カレンダーはおすすめよ~

おじいちゃんに囲碁の本が欲しいって言われたからアマゾンで買うねって言ったら「そんな遠くまで行かなくて

記事を読む

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

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

記事を読む

【訴状雛形(ワード)あり】少額訴訟のすゝめ 「少額訴訟の訴状テンプレート(ダウンロード)」~裁判と仲良しになろう~

お金が払ってもらえない時どうする? フリーランスとして活動されているウェブ屋さんや、ス

記事を読む

RapidSSLをさくらインターネット専用サーバ(CentOS5)セットアップおよび更新覚書

タイトルそのまんま。 丁度sslの更新だったんですが、今回記憶を辿るのが大変でした。 次

記事を読む

【WordPress】Contact Form 7の追加プラグイン「Contact Form 7 DatePicker」便利だけど手動入力されたときにエラー吐いちゃうのの対策

便利なプラグインContact Form 7の追加プラグイン「Contact Form 7

記事を読む

【PHP】曜日と時間を検出して、いつまでに対応するかを表示する

営業時間中であれば、お問合わせいただいてから何分以内に対応しますよという文句を自動で表示したい。

記事を読む

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

これの続きです。 前はDNSの設定編で今回は2ステップの最後サーバの設定です。

記事を読む

【WordPress】Contact Form 7で送信できないからWP-Mail-SMTPで対策!でもgoogle appsのsmtpの設定がわからない人のためだけの記事

タイトル長い。うざい。 って思っても、この記事にたどり着いたってことは似たような悩みをお抱えな

記事を読む

【WordPress】静的htmlサイトをフルCMS化するときにURLを変えないためのパーマリンク自由自在プラグイン「Custom Permalinks」

静的htmlサイトをCMS化(WordPress化)するメリット 一家にひとつは古い静

記事を読む

「chikirin.com」「chikirin.net」ドメイン取ったよ!

電車が混雑していたらお年寄りに席を譲りましょう。 ってことで席を譲ると、「あたしゃ年寄りじゃな

記事を読む

Comment

  1. 瑠々 より:

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

Message

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

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

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

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

人生はサウナ理論。 というのを、敬愛するさんちゃんの名言「生きて

e-taxでの確定申告のもにょもにょ(noteからの転載)

この記事は2016年にnoteに投稿した記事の転載です。 ちょう

【感想】Netflixオリジナルドラマ『Jimmy〜アホみたいなホンマの話〜』 オクレさんもはや本人でしょ??

Netflixオリジナルドラマ『Jimmy〜アホみたいなホンマの話〜』

【javaScript】2017年版 法人税実効税率 シミュレーション 自動計算機(コードも置いとくね)

今日は4/3だからこれは嘘じゃないよ!! 法人税実効税率

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

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

→もっと見る

PAGE TOP ↑