phpMyAdminで大容量のSQLファイルをインポートする方法

phpMyAdminから大容量のDBダンプをアップロードする手順について

現在稼働しているテスト環境のデータをローカルにある開発環境にコピーしようと思ったら、ファイルサイズが圧縮しても18MByteあってインポートに失敗しました。

php側で制限をかけているため、phpの設定を限界突破させて大容量ファイルをインポートする方法を紹介します。

作業順序

  1. php.iniの設定変更
  2. Apacheの再起動
  3. phpMyAdminのインポート画面の確認
  4. インポート

この順序で大容量ファイルのインポートを成功させます。

 

phpの限界突破

phpMyAdminにインポートできるファイル容量はphpMyAdminが決めている訳ではなく、php側の設定に引っ張られます。

phpMyAdminをXAMPPで導入した直後であれば、インポート可能な容量は2048Kbyteです。小規模なインポートであれば十分に事足りますが、既に運用が行われているようなサイトだと不十分であるためインポート出来る容量を増やします。

ただし、単純にインポートの上限値を引き上げただけだと、phpが扱えるメモリ容量を超過してしまって別の問題に発展してしまいます。そうならないために、扱えるメモリの容量の上限値も一緒に引き上げます。

 

php.iniファイルの修正

php.iniファイルを修正します。
XAMPPであれば、「 XAMPP > php > php.ini 」の順序で見つけれるphp.iniファイルを編集します。

memory_limit=200M
post_max_size=180M
upload_max_filesize=150M

それぞれのパラメータの役割的に以下の関係になるように数値を設定して下さい。

memory_limit > post_max_size > upload_max_filesize

メモリの上限値 > 最大投稿可能サイズ > 最大アップロード可能サイズ

日本語の通りで例えば最大アップロード可能サイズがメモリの上限値や最大投稿可能サイズを超過してしまっていては、何かおかしいですよね。
上記の様にphp.iniファイルの上限値を設定し、Apacheの再起動を行いphpMyAdminに再接続するとアップロード可能の上限値が引き上げられます。

phpMyAdminで大容量のSQLファイルをインポートする方法

上記のとおり、ファイルの上限容量が大幅に拡張されていることが分かります。

 

ちょっと気になったこと

上限値として指定する数値ですが、”200MB”じゃないの?”B”はいらないの?と思われる方もいると思います。私も思いました。調べたのですが“B”は特に不要のようです。php界隈ではそういう決まりなのかな?

 

らいか
phpの設定の指南書みたいなのがあると凄く助かりますよね

phpMyAdminから大容量のDBダンプをアップロードする手順について

ABOUTこの記事をかいた人

工業高等専門学校を卒業後、NTTグループのSI企業に就職。数々の炎上案件を鎮火するために日本各地を5年間転々とする。2015年に一般ユーザ向けのWebシステム開発案件のチームリーダとして業務に従事し、改めて"Webのものづくりの楽しさ"に気付きWeb制作会社に転職。Web制作やアクセス解析を使ったオウンドメディアの運用改善などを行っていく中で、もっとユーザー目線でWebをただ制作するだけではなく企画や運用まで幅広い領域で仕事がしたいと感じるようになり、Webディレクターのキャリアを目指す。日本中のビジネスホテルに詳しく、犬や猫よりも鳥派。