大きいsqlをインポートするのら、php.iniで最大サイズを変更すればできるといえばできる。ローカル環境とかなら。でもインポート中にエラーとかでると結局sql直したりしなきゃいけない。今回は100テーブルあって全部で30MBくらいのsqlなので、テーブル毎に分割してインポートする。
csplit dump.sql /DROP\ TABLE\ IF\ EXISTS/ -f db {*}
db00〜db99までのファイルができた。db00は最初の方のファイルの説明みたいな文章が入ってるだけなので、実際使うのはdb01〜db99までの99ファイル。99回インポートを手動するのはめんどくさい。。シェルスクリプトを作ってみる。
#!/bin/sh i=1 pass='hogehoge' while [ $i -ne 100 ] do no=$i if test ${i} -lt 10 ; then no="0${i}" fi echo $no eval /Applications/XAMPP/xamppfiles/bin/mysql -u root -p$pass hogedb < db$no i=`expr $i + 1` done
これでできた。