MySQLを扱う上で一番ポピュラーなのが、phpMyAdminだと思います。これはブラウザ上でグラフィカルなインターフェイスでデータベースを管理、操作できるアプリケーションです。
まず、大容量のデータをphpMayAdminでインポートするというのはコツがいる、というのは常々知っておりました。メモリー不足でエラーになったり、ブラウザ上で行なわれるのでアクセスがタイムアウトしたり、といった具合に。
※今回は、ローカルPCにインストールしたxampp内のMySQLにインポートします。
無事に15GBのsqlファイルをインポートできた方法(ローカルPCの場合)
データベースに接続する
MySQLの操作は、コマンドラインから行ないます。
コマンドプロンプトを立ち上げる
スタート → すべてのプログラム → アクセサリ → コマンドプロンプト
を起動します。(Windowsの場合)
MySQLはサーバーですので、ユーザーとしてログインして利用します。
MySQL(おそらくphpMyAdminで)セットアップの時に作成したアカウント(一般ユーザー)を使います。
ユーザー名: db_user パスワード: abcdef
MuSQLにログインする記述
Enter password: abcdef
mysql>
「 mysql> 」という文字を、プロンプト といい、MySQLが命令を待っている状態です。この後に、SQL文を打ち込み、データベースを操作します。
あらかじめphpMyAdminなどから作成したデータベースを選択します。
データベース名: photo
Database changed
mysql>
これで、”photo”というデータベースを扱えるようになります。
そして、最後。「photo.sql」というファイルを読み込みます。
これで、「photo」というテーブルに「photo.sql」のデータがインポートされます。
今回約、15GBのデータ量があったので約40分ほどかかりました。
他にもいろんな方法を試しましたが、駄目でした。しかしこれが有効な場合もあると思うので一応記します。
PHPのメモリーリミットの上限を変更する
php.iniをエディタで開き
私の場合はC:\xampp\php\php.iniメモリの限界サイズ
memory_limit = 128MPHPが受け取れるデータの最大サイズ
post_max_size = 128Mアップロードファイル時の最大サイズ
upload_max_filesize = 128M
などと設定しましたが、駄目でした。
また、違う方法として以下も試してみました。
アップロードファイルをローカルデータとして読み込ませる
参考サイト:http://www.eshima.info/archives/2006/11/xamppphpmyadmin.php
xampp/phpMyAdmin/config.inc.php の中の
$cfg[‘UploadDir’]=”;
を
$cfg[‘UploadDir’]=’./upload’;
に変更します。 次に
xampp/phpMyAdmin/upload
というフォルダを作り、その中に大容量のインポートファイルを置きます。 そしたらphpMyAdminの画面のインポートの中に 「ウェブサーバー上でアップロードする : 」という項目で uploadフォルダのインポートファイルが選択できるようになるので、そこで選択し、インポートを実行します。 あまりに大きいとタイムアウトになってしまいますが 再度実行ボタンを押すと続きからやってくれるようで 簡単にインポートができます。
こんな感じでphpMyAdminのインポート画面にアップロードファイルが選択できるようにまります。
しかし、この方法でも10分くらい読み込みして、29個のテーブルを作成したあたりで、エラーがでて駄目でした。肝心のバイナリの画像データは1つも読み込めていませんでした。通常のsqlファイルであればきっと簡単に読み込めるのだろうけど、3~6MBもあるバイナリデータが2000個以上のあるので、きっといろんな理由で駄目なのだとあきらめました。