[phpMyAdmin]解決方法。Maximum execution time of 300 seconds exceeded

Read More




phpMyAdminを使ってCSVデータをインポートしていたら下記のエラーが出た。
Fatal error: Maximum execution time of 300 seconds exceeded in {file_path}


実行時間300秒でひっかかってる。

php.iniの設定は色々書き換えてるはずなんだが。
うーんおかしいな…


不思議に思いながら調べていくと、
どうやらphpMyAdminが実行時間の設定を独自に持っていることがわかった。


確認するのはこのファイル。
C:\xampp1.7.7\phpMyAdmin\libraries\config.default.php


ファイルを開いて確認するのは以下の項目。
/**
 * maximum execution time in seconds (0 for no limit)
 *
 * @global integer $cfg['ExecTimeLimit']
 */
$cfg['ExecTimeLimit'] = 300;


なるほど、確かに300秒で設定してある。



んじゃ早速この項目の値を変更しよう、と思ったら
ファイルの先頭になにやら英語で目を引く注意書きがあるではないか。

NO!DO NOT EDIT!

注意書きの一部を抜きだしてみる。
 * DO NOT EDIT THIS FILE, EDIT config.inc.php INSTEAD !!!
 *
 * phpMyAdmin default configuration, you can copy values from here to your
 * config.inc.php


えーと…?

このファイルはデフォルト設定のファイルだから必要項目をconfig.inc.phpにコピーして使え
って感じだろうか。
あってる?


config.inc.phpのファイルはlibrariesフォルダと同階層にあった。
C:\xampp1.7.7\phpMyAdmin\config.inc.php


上記ファイルを開いて項目を貼り付け値を0に設定。
/** 2016/04/04 xirasaya: add */
$cfg['ExecTimeLimit'] = 0;




もう一度phpMyAdminからCSVデータをインポートを試みると…

よし、できた。


あとこれはPHPの設定ではなく、
phpMyAdminの独自設定なのでApacheの再起動必要ない

あくまでもphpMyAdminの処理の中で読み込まれる設定なので。




--
■おまけ
データをインポートする場合、常ならばデータはSQL形式のものを使うのでmysqlコマンドを叩いて行う。

今回は他社が有料で提供しているデータがCSV形式だったためインポートにphpMyAdminを使った。

しかし改めて考えてみるとMySQLWorkbenchでもCSV形式のインポートってできるような…






--
参考サイト:
ttp://www.yuta-system.com/php/fatal-error-maximum-execution-time-of-300-seconds-exceeded-in.html