標準のphpMyAdminではできない
phpMyAdminはWEBサーバーに依存するため、Apacheのhttpd.confやphp.iniの設定に依存します。
自鯖なら設定変更で対応可能ですが、戻すのがめんどくさい、または処理中にHttpが無応答になって台無しになったりします。
サーバーで直接コマンドを打つ
私はサーバーでコマンドを打つのは、リスクが高いので苦手なのですが今回ばかりは仕方がありません。
MySQLにログインせず実行してください。
(実施したのはテーブル定義を含まないデータのみです。)
# おすすめコマンド
mysqldump -u root -p \
--no-create-info \
--single-transaction \
--quick \
--max_allowed_packet=1G \
db_name | gzip > data_only.sql.gz
効果
--single-transaction→ ロック最小で安定--quick→ メモリに溜めずストリーム処理--max_allowed_packet=1G→ 巨大行で落ちるのを防ぐ
211MBほどでしたが数分で終わりました。
「おまけ」インポートコマンド
gunzip -c data_only.sql.gz | mysql -u root -p db_name
さらに安定させるなら
gunzip -c data_only.sql.gz | mysql -u root -p \
--max_allowed_packet=1G \
--local-infile=1 \
db_name
