アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpMyAdminでDUMPしたSQL文ファイルが18MBほどあるのですが、
このファイルを丸ごと別のPCにインポートしようとすると、
タイムオーバーなどで途中までしか受け付けてもらえません。

どこからどこまでがインポートされたかも判別できず、
けっきょくCREATE TABLEなど最初からやり直したりして不便してます。

また、最後まで「完走」するためには、php.iniとかphpMyAdminの
configファイルなどで、ファイルサイズやタイムアウトまでの
時間を延ばしたりするのでしょうが、具体的にどこをどのように
書き換えればよいでしょうか。

環境:
PHP4.4.4
MySQL 4.0.26
IIS5.1

A 回答 (4件)

phpMyAdminのソースをちょっと見ました。


「スクリプトがタイムアウトを過ぎました。・・・」
というメッセージが出る条件は、

・allow_interruptがtrue
(AND)
・アップロードに掛かる時間が、php.iniのmax_execution_time設定よりも大きい

場合のようです。この辺の設定をいじれば、何とかなりそうです。allow_interruptは、phpMyAdminの画面(インポートへの割り込み云々のチェックボックス)で設定できるようです。
(すみませんが、確認はしていません)。

あと、php.iniの以下の設定も要注意です。
upload_max_filesize、memory_limit、post_max_size

cooz7654さんご指摘のように、可能であれば、DOS窓でmysqlクライアントを起動して、そこからLOAD DATA INFILEなどをした方がよいと思います。
    • good
    • 0
この回答へのお礼

fdsjaklfjasさん、ソースまでご確認いただき恐縮です。

とりあえず、巨大ファイルを小分けにしてインポートしたのですが
見事に文字化けして(EUCをJISで取り込んでいた(T-T))
ご教示のLOAD DATA INFILEというのを調べて
取り組んでみます。

ご教示ありがとうございました。

お礼日時:2006/11/02 12:17

php.iniでデーフォルトで下記の様になっている箇所を変更して、


タイムアウト時間を延ばすということでいいのかな?

default_socket_timeout = 60
(秒単位)

ただ、直接サーバに対して権限がおありなのであれば、
直接DBでインポート処理した方がいい気はします。

この回答への補足

> php.iniでデーフォルトで下記の様になっている箇所を変更して、
> タイムアウト時間を延ばすということでいいのかな?

cooz7654さん、アドバイスありがとうございます。ご教示どおり

default_socket_timeout = 1200    ←(20分)

としてIISを再起動してみましたが(20分たたなくても)
10分くらいで
「スクリプトがタイムアウトを過ぎました。
 インポートを終わらせたい場合、同じファイルを再送信し、
 インポートを再開させてください」
といわれますね(phpMyAdmin - 2.8.2.4に)

> ただ、直接サーバに対して権限がおありなのであれば、
> 直接DBでインポート処理した方がいい気はします。

これはどういうことでしょうか。
phpMyAdmin - 2.8.2.4で操作するのは
「直接DBでインポート処理」していることにはなりませんか?
ローカルで、DOS窓にDUMP(エクスポート)されたSQL文を
流したほうがよいでしょうか?

補足日時:2006/10/31 10:47
    • good
    • 0

そうですか・・・。



そうなるとIISの設定ですね。
恥ずかしながら私はIISは10年近く触ってないのでわかりませんが
apacheであればhttpd.confのTimeoutというパラメータが
あるようですから、IISにも同等の設定があると思います。

「IIS タイムアウト 設定」あたりで検索するといくつかヒットしますので
参考になるかと。

apacheでそのほかに気にする箇所はpost_max_sizeとupload_max_filesize
があります。ようはpostで送れるサイズとファイルで送れるサイズを
指定するのですが、意外にpost値が少なくてファイルサイズ制限に
かかって悩む場合があるかもしれません。IISはどうなんでしょね。

この回答への補足

yamabejpさん、たびたびありがとうございます。

>「IIS タイムアウト 設定」あたりで検索するといくつかヒット

するのですが、ピンポイントな設定方法が見当たりません。
HELP等を含め、少し調べてみます。まずは御礼申し上げます。

補足日時:2006/10/31 10:52
    • good
    • 0

(1)SQLを分割しておくるか(2)ファイルでアップして、シェルでmysqlに


リダイレクトするのいずれかでいかがでしょう。

タイムアウトを伸ばすのは攻撃に弱くなるのでお勧めできません。

この回答への補足

yamabejpさん、毎度お世話になります。
ご教示のように、これまではSQLを分割して対応してましたが
タイムアウトなどの設定ひとつでラクができるなら
そうしたい気分です。

DUMPしたSQLファイルのインポート先は
ローカル(XP+IIS)の開発環境ですので、
タイムアウトとかで片付くならできるだけそちらで
済ませたいのですが。。。。。

補足日時:2006/10/30 17:46
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!