- 更新日: 2015年4月10日
- PHP & CakePHP
phpMyAdminのSQLファイル・インポートでエラー
phpMyAdmin で SQL ファイルから MySQL にデータを流し込んでリストアしようとしたところ、エラーが発生しました。phpMyAdmin にログイン後データベースを選択して、上部メニューの Import(インポート)から SQL ファイルを読み込ませようとしたら、ブラウザに以下のエラーメッセージが表示された。
1 2 3 |
You probably tried to upload a file that is too large. Please refer to documentation for a workaround for this limit. |
— 環境 —
PHP 5.3.9
MySQL 5.6.19
phpMyAdmin 4.2.2
エラーの原因は php.ini の設定
エラーメッセージに参照リンクが含まれていたので、それを読みました。以下引用。
The first things to check (or ask your host provider to check) are the values of upload_max_filesize, memory_limit and post_max_size in the php.ini configuration file. All of these three settings limit the maximum size of data that can be submitted and handled by PHP. One user also said that post_max_size and memory_limit need to be larger than upload_max_filesize.
なるほどな〜。php.ini(PHP の設定ファイル)内の以下の3つの設定値を確認してね、ということらしい。
upload_max_filesize
memory_limit
post_max_size
アップロードしようとした(読み込ませようとした)ファイルのサイズが、これらの設定値より大きい可能性があるので、より大きな設定値にすれば良いみたい。あと注意点として、post_max_size と memory_limit は、upload_max_filesize より大きい必要があるそうだ。
確かに、Import を実行する画面でアップロードできるファイルのサイズが 2M までと制限されているのを確認できました。これを大きくすればいいのだろう。
php.ini を編集して設定値を大きくする
まず php.ini がどの場所から読まれているのか分からなかったので、適当な場所に phpinfo() を表示させるファイルを作成します。phpinfo() で表示される情報に、php.ini の場所を確認できる項目がある。
phpinfo.php
1 |
<?php phpinfo(); ?> |
このファイルをブラウザで表示させると、以下の “Loaded Configuration File” という項目があるので、そこで php.ini のパスを確認できます。
1 2 3 |
Loaded Configuration File /path/to/php.ini |
続いて、php.ini を編集。各々の設定値を大きくしました。この数値は、アップロードするファイルの大きさに合わせて任意に調整。
1 2 3 4 5 6 7 8 9 10 11 |
$ vim /path/to/php.ini # upload_max_filesize = 2M upload_max_filesize = 64M # memory_limit は 128M のまま memory_limit = 128M # post_max_size = 8M post_max_size = 128M |
その後 Apache と MySQL を再起動して、再び Import を実行。
今度は、アップロードできるファイルのサイズが 64M までになっています。Import を実行したところ、今度は実行が成功して無事にデータをリストアできました。
- PHP & CakePHP の関連記事
- PHP+MySQLでNo such file or directoryエラー
- bin/cakeコマンドでintlエラーが出る場合の対処(CakePHP)
- CakePHPアプリケーションをCapistranoでデプロイ
- Integrity constraint violation:Column ‘created’ in order clause is ambiguousエラー/CakePHP
- CakePHPでDB関連テーブルのレコード・データを取得
- CakePHPでカラム属性に別名/エイリアスを付ける仮想フィールド
- CakePHPで日付選択フォームのカスタマイズ
- CakePHP3で現在のコントローラー名・アクション名を取得
- PHPインストールでconfigure: error: freetype.h not foundエラー
- CakePHPでログイン後に元のページにリダイレクトさせる
Leave Your Message!