MAMPのphpMyAdminで巨大なSQLファイルがインポートできない時の解決法

MAMP環境で開発している際、データベースのバックアップ(SQLファイル)が大きすぎて、phpMyAdminからインポートしようとするとエラーになってしまうことはありませんか?

phpMyAdminはデフォルト設定だと数MB〜数十MBのアップロード上限があるため、容量オーバーで弾かれてしまいます。

php.iniを編集して上限を上げる方法もありますが、数百MBを超えるような巨大なファイルの場合は途中でタイムアウトする可能性が高いです。そのため、ターミナル(CLI)から直接インポートする方法が一番早くて確実です。

※php.iniを編集して上限を上げる方法については以下の記事を参照ください。
WordPressを本番からローカル(MAMP)環境へ移行する3つの手順を徹底解説
の「(補足)MAMPのアップロードファイルの最大サイズが足りない場合」の章
【前提条件】
本記事はMac版のMAMP(無料版)環境を想定して解説しています。MAMP PROをご利用の場合はディレクトリ名が異なりますのでご注意ください。

ターミナルを使ったインポート手順

大まかな流れは以下の3ステップです。

  1. ターミナルを起動する
  2. MAMPの正しいmysqlコマンドのパスを探す
  3. インポート用のコマンドを実行する

1. mysqlコマンドの場所(パス)を探す

MAMPはバージョンによって `mysql` コマンドが保存されている場所が異なります。まずはターミナルを開き、以下のコマンドを実行して正しいパスを探しましょう。

find /Applications/MAMP -name "mysql" -type f
よくあるパスの正解例:
MySQL 8.0の場合: /Applications/MAMP/Library/bin/mysql80/bin/mysql
MySQL 5.7の場合: /Applications/MAMP/Library/bin/mysql57/bin/mysql

2. インポートコマンドの実行

正しいパスが見つかったら、インポートを実行します。以下のコマンドをご自身の環境に合わせて書き換えて実行してください。(※ここではMySQL 8.0のパスを例にしています)

/Applications/MAMP/Library/bin/mysql80/bin/mysql -u root -p データベース名 < /ファイルの場所/ファイル名.sql
  • -u root:ユーザー名(MAMPの初期設定はrootです)
  • -p:実行後にパスワードを求められます(初期設定はrootです)
  • データベース名:インポート先の空のデータベース名を指定します

「<」の後ろのSQLファイルのパスは、ターミナル画面に直接ファイルをドラッグ&ドロップすると自動で入力されて便利です。

よくある質問

sudo: command not found とエラーが出ます
データベースへのアクセスにMacの管理者権限(sudo)は不要です。sudoを外し、上記「1」で見つけたMAMPのmysqlの絶対パスから入力して再実行してみてください。
Enter password: の後、キーボードを叩いても文字が入力されません
ターミナルのセキュリティ上の仕様です。画面には何も表示されませんが、しっかり入力されています。そのまま「root」と入力してEnterキーを押してください。

CONTACT

webサイト制作、デザインに関するご相談、御見積のご依頼など、弊社へのお問い合わせはこちら