このサイトのDBのバックアップサイズはいつの間にか150MBになっていました。
参照:mysqldumpでMariaDBを定期的にバックアップする方法
この様な環境で「All in One SEO」の設定変更を行った時に、このサイトが壊れてしまいました。
そこで「phpMyAdmin」を使ってバックアップデータをインポートして復旧を試みましたが失敗しました。
そこで「Hyper BackUP」から「MariaDB 10」をリストアして取りあえずは復旧させました。
しかしこれでは何の為にDB単位でバックアップを取っていたのか?が問題になり「phpMyAdmin」のインポートについて徹底的にテストを行ったので、そこで判った事をここで解説します。
1.phpMyAdminのインポートの基本知識
1.インポートできるファイルサイズについて
「phpMyAdmin」のデフォルトのインポートファイルサイズは「32MB」になっています。
これを変更する為には「php.ini」の設定を下記の様に変更する必要があります。
パラメータ | デフォルト値 | 変更値(私の場合) |
upload_max_filesize | 32M | 512M |
post_max_size | 32M | 512M |
memory_limit | 128M | 512M |
■各値の関係は
upload_max_filesize ≦ post_max_size ≦ memory_limit になります。
2.「phpが処理する」タイムアウト時間について
パラメータ | デフォルト値(秒) | 変更値(私の場合) |
max_execution_time | 240 | 0 |
■0は「制限なし」という設定です。
3.「phpMyAdmin」のログイン時間の問題
1~2の設定で「32MB」以上のSQLファイルのインポートは可能になりましたが、もう一つ「phpMyAdmin」の「24分」問題があります。
「phpMyAdmin」のログイン時間のデフォルト時間は1440秒(24分)になっています。
よって、インポートで24分を過ぎると「phpMyAdmin」自体がログアウトしてしまうという問題が発生します。
この設定値は「config.inc.php」の設定値を変更します。
4.「phpMyAdmin」がインポート中に割り込みを掛ける問題に対する対応
最後に「phpMyAdmin」はインポート中に割り込みを発生させ、インポート中止する機能があります。
この機能がONになっていると大きなSQLファイルは正常にインポートが完了しません。
そこでインポート画面の設定で、この機能をOFFにします。
2.具体的な設定変更方法
1.php.iniの設定変更
1.Web Stationを起動します
2.現在のPHPファイルを確認します。
[DSM6系]
Web Stationの「PHP設定」画面を開きます。
■現在利用しているプロファイルをダブルクリックします。
プロファイルが複数ある場合は、メニュの「全般設定」を開いて現在使われているプロファイルを確認しそれをダブルクリックします。
[DSM7系]
Web Stationの「スクリプト言語の設定」画面を開きます。
■上記の「phpMyAdmin」をダブルクリックします。
3.下記の設定画面が開きます
■上記の「コア」タブをクリックすると下記画面が開きます。
①検索BOXで「size」で検索して下さい。
検索された項目の中から「post_max_size」と「upload_max_filesize」の所クリックして変更します。
例)32M→512M等
②検索BOXで「limit」で検索して下さい。
「memory_limit」の所を「512M」等の適当な数字に変更します。
③検索BOXで「time」で検索して下さい。
「max_execution_time」の所を「0」に変更します。
④画面下の「OK」ボタンを挿入して設定を保存します。
以上で指定したサイズまでのSQLファイルのインポートが時間制限なしで実行可能となりました。
2.「phpMyAdmin」の設定変更
ここでは「phpMyAdmin」のログイン時間を「24分」から「1時間」に変更します。
・DSM6系:「web」フォルダの下にある「phpMyAdmin」を開いて下さい。
・DSM7系:「web_packages」フォルダの下にある「phpMyAdmin」を開いて下さい。
そこにある「config.inc.php」をEmEditorで開いて下さい。
適当な所に下記を追加して下さい。
$cfg['LoginCookieValidity'] = 3600;
上記はログインタイムアウト時間を3600秒(60分)にするという設定です。
メモ①
「phpMyAdmin」のデフォルト設定値は、「librariesフォルダ」の中にある「config.default.php」に記載されています。
しかし、このファイルを変更するのではなく「config.inc.php」にパラメータを記述すると、デフォルト値を更新する事ができます。
よって上記の設定は「config.default.php」の設定値が24分の物を「config.inc.php」で1時間に変更したという事になります。
メモ②
上記で「config.inc.php」をカスタマイズしましたが、Synologyのパッケージは定期的にバージョンUPがあります。
上記で修正した「config.inc.php」ファイルは「phpMyAdmin」がバージョンUPされるとデフォルトに戻りますので、その時は再度、設定し直す必要があります。
また上記を変更した結果、下図の様なエラーメッセージがでた場合は、下記のドキュメントを参照してください。
3.インポート時の設定
「phpMyAdmin」のインポート画面に入り、インポートファイルを指定します。
また下記の「部分インポート」のチェックを外して、実行して下さい。
以上で512M以下のSQLファイルのインポートが可能になります。
メモ
上記の「部分インポート」のデフォルトを「チェックなし」にする場合は、「設定→インポート」画面で「部分インポート」の所の✔を外すとデフォルトが割り込みなしになります。
ミスを防ぐ為にも、デフォルトを変更する事をお勧めします。