サイズの大きいSQLデータをサーバーにUPする方法
ファイルサイズの大きいSQLファイルは、phpMyAdminではインポートできない場合があります。
bigdump.phpを使えば、ブラウザアクセスでデータのインポートができます。
SQLデータは圧縮ファイルでアップロードし、サーバー上で解凍する事をお勧めします。
phpMyAdminでインポートできないサイズのSQLファイル
今回もクライアント案件です。
Wordpressの引っ越しの際にはDBデータ(SQLファイル)を移設させる必要があります。
普通の量ならば、phpMyAdminでも問題無くエクスポート・インポートができると思います。
しかしSQLファイルのファイルサイズが特に大きい場合は、phpMyAdminからのインポートができない場合があります。
インポートするデータの容量に一定制限がある
これはレンタルサーバー側の利用制限の一環ですね。
一定以上のファイルサイズを持つSQLファイルの場合、phpMyAdminからはインポート操作できない仕様になっています。
※今はそのようなレンタルサーバーがほとんどです。
ですのでこのようなSQLデータをインポートするには、別の手段を取らなければなりません。
他のインポート手段
このような肥大したSQLファイルをデータベースにインポートする場合、主に以下3つの手段が考えられます。
・テーブルごとに切り分けて操作
・SSH接続での操作
・専用ファイルからの操作
テーブルごとに切り分けて操作
Wordpressの移設の場合、各テーブルをまとめて一括でエクスポートする事がほとんどだと思います。
わざわざテーブル単位でエクスポートを繰り返す事はあまりありません。
しかし今回の様に大容量のデータの場合は、各テーブル単位でエクスポート・インポートしてくる事も一つの手段です。
しかしSQLテーブルの中で一番肥大するのはwp_post系でしょうから、それ以外を分割してもあまり意味がないかも知れませんね。
SSH接続での操作
これはコマンドを直接入力してDBデータをインポートする方法です。
ターミナルやその他ソフトでサーバーにSSH接続し、コマンドを入力してインポート操作する事になります。
もちろんこれで問題は全くないのですが、やはり初心者向けではありませんね。
移転先がSSH接続できないサーバーの場合もあります。
SSH接続についてはこちらをご覧ください
専用ファイルからの操作
最後の一つは専用のphpファイルをサーバーにUPして操作する方法で、今回紹介する方法です。
移転先のDB情報などを入力するだけで、簡単にインポートできますのでおすすめです。
今回はこのBigDump.phpファイルを使ったインポート操作をご紹介します。
BigDump.phpのダウンロード・準備
まずはBigDump.phpを下のリンクのURLからダウンロードします。
BigDump: Staggered MySQL Dump Importer
ページ右上の「BigDump ver. 0.36b (beta) 」からダウンロードします。
解凍してできるファイルは1枚のみです、シンプルですよね。
DB情報の入力
アップロードしたBigDump.phpを開いて、移転先のDB情報を入力します。
43行目あたりがデータベースへ接続するための情報になります。
入力が必要なDB情報
・MySQLサーバーのホスト名
・データベース名
・データベースを利用できるユーザー名
・データベース接続パスワード
編集したら上書き保存しましょう。
ファイルアップロード・アクセス
サーバーにFTP接続し、TOPディレクトリにBigDump.phpと大容量のSQLファイルをアップロードします。
同じ階層に並べる
場所はTOPディレクトリでなくても良いのですが、BigDump.phpとSQLファイルは同じ階層に設置しましょう。
bigdump.php
…
…
hogehoge.sql
…
上記の様に同じディレクトリ内にあれば、他のファイルが並んでいても問題ありません。
第三者にアクセス・操作されない様にする
BigDump.phpは一般に出回っているファイルですから、知っている人は誰でも知っています。
今回の様にTOPディレクトリに置く事は想定されやすいので、第三者にアクセス・操作されない様にしなければなりません。
作業者だけがアクセスできる別ディレクトリに置くか、操作をしたらすぐに削除するようにしましょう。
ブラウザからアクセス
URLを直接入力して、アップロードしたBigDump.phpをブラウザで開きましょう。
http://ドメイン名/BigDump.php
SSH接続と違ってブラウザで確認しながらインポート作業ができるので、視覚的に分かりやすくて便利です。
ブラウザアクセスした時、正常にデータベースに接続できていれば下のようになります。
逆に正常に接続できていない場合は、以下の様な表示がされます。
DBデータのインポート操作
ではいよいよ後はインポートするだけです。
上部メニューの「Start Import」部分をクリックすると、インポートが始まります。
ローカル上のファイルを選択する事もできます。
インポート中にブラウザ再読み込みをしてしまうと、再度レコードが追加されてしまうので注意しましょう。
「%bar」のメーターが最大になり、「Conguratulations」と表示されればインポート完了です。
複数のSQLファイルがある場合
複数のSQLファイルがあるという事は、それぞれ別々にWordpressが動いている事になります。
であれば基本的に、データベースもそれぞれ存在するはずですよね。
その場合は別のSQLファイルをアップして、それ専用のDB情報に書き換えます。
もう一度ブラウザからアクセスして、「Start Import」をクリックすればインポートできます。
※アップする場所は毎回同じでもOKですが、DB情報は都度書き換えましょう。
FTPソフトでSQLデータがUPできない場合
BigDump.phpでサーバーにUPする場合、まずサーバーのTOPディレクトリにSQLファイルをアップロードしなければなりません。
通常はFTPなどでアップロードする訳ですが、あまりにファイルサイズが大きいと途中でエラーが出る場合があります。
圧縮ファイルのUP
その場合は圧縮ソフトなどを使い、SQLファイルを圧縮しましょう。
これにより、○○○.sqlファイルが○○○.zipに変わります。
.zipファイルの状態であれば、FTPでスムーズにアップロードできるはずです。
解凍ファイルを準備する
サーバーにUPした後は当然.sqlファイルに戻さなければなりません。これが解凍ですね。
サーバー上で解凍するために、専用のファイル(phpファイル)を準備します。
今回phpファイルの名前を「unzip.php」としています。
unzip.phpコード
以下がunzip.php内コードです。コピペして使って下さい。
<?php $zip = new ZipArchive(); if ($zip->open('./hogehoge.zip') === true) { if ($zip->extractTo('./') === true) { $zip->close(); } else { exit('Extract Error'); } } else { exit('Open Error'); } echo 'Unzip Complete'; ?>
4行目のhogehoge.zip部分を、解凍するファイル名にしましょう。
上記パスの場合、hogehoge.zipがある場所と同じ位置にunzip.phpをおいておく必要があります。
ファイルアップロード・アクセス
このphpファイルを、サーバー上のzipファイルと同じ位置にUPしましょう。
そしてブラウザからこのファイルへアクセスを掛ける事で、解凍作業が実施される訳です。
http://ドメイン名/unzip.php
解凍中は歯車マークが回り、ページは切り替わりませんので焦らずに待ちましょう。
成功すれば「Unzip Complete」と表示され、サーバー上の.zipと同じ位置に.sqlファイルができます。