local by flywheelのAdminerでFatal errorでインポートできないサイズのデータベース

2019/02/10[公開] 2020/06/09[最終更新]

 リアルサイトで稼働中のWordPressをローカル環境でいろいろテストや検証をしたくて、local by flywheelでPCのローカル環境にデータベースをインポートしようとしたら、PHPのメモリーサイズが不足してインポートできないエラーで困ってしまいました。

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 117521552 bytes) in /etc/scripts/local-adminer.php on line 92

 エラー内容で検索したら、公式サイト(英語)のCommunityページで同じエラーで困っている投稿があり、Adminerを使わずに内包されているSSHを使い、mysqlコマンドで110MBあったデータベースをインポートできました。

このページの目次

スポンサー リンク

クイック手順

まずは、手順を簡単に説明します。そのあとで画像付きで詳しく説明しています。

  • サイト名を右クリック⇒Show Folder
  • ローカルサイトの app\public フォルダーにインポートしたいxxxxx.sqlファイルを設置(圧縮ファイルの場合は展開しておく)
  • サイト名を右クリック⇒Open Site SSH
  • mysql -u root -proot local < xxxxx.sql  とコマンド入力(xxxxx.sqlのファイル名は例です。)
  • ¥で読み込めないエラーが出る場合は –default-character-set=utf8 オプションを付ける

詳細手順

 まずは、インポートしたいsqlファイルをローカルフォルダーのappフォルダーに置いておきます。

 ローカルフォルダーの場所は、Windowsの場合、local by flywheel に出ているローカルサイト名を右クリックして「Show Folder」を選ぶとエクスプローラーが開くので、サイト名のフォルダーを開くとapp⇒public フォルダーがあります。

lbyw2
ローカルサイトを右クリックで開く

 開いたフォルダーにはローカルサイト名のフォルダーがあるので、それを開くとappフォルダー、さらにpublicフォルダーを開きます。ここはいわゆる公開フォルダーなのでWordPressのファイルがたくさん入っています。

そこにリアルサイトからエクスポートしたsqlファイル(例としてxxxxx.sqlとしています。)を、通常のWindowsの操作でコピー&ペーストでもドラッグでもいいので持ってきます。

エクスポートしたファイルが圧縮ファイル(xxxxx.sql.gz などのファイル名)の場合は、事前に展開しておくか、phpMyAdminなどで圧縮なしでエクスポートし直します。

 続いて local by flywheel に戻り、出ているローカルサイト名を右クリックして「Open Site SSH」を選びます。すると、Windowsのコマンドプロンプトのような画面が出てきます。

lbyf3
次にOpen Site SSHを開く

 この黒い画面に、こちらのコマンドを入力してEnterキーを押します。xxxxx.sqlファイル名の部分は例えとして入れているだけなので、実際のファイル名に変更してください。

mysql -u root -proot local < xxxxx.sql

上記コマンドで、Unknown command ‘\”.とエラーがでる場合は、文字コードを指定するオプション –default-character-set=utf8 を付けます。

mysql -u root -proot local --default-character-set=utf8 < xxxxx.sql

 エラーが出ずに、処理が完了したらインポート成功です。Adminerボタンを押してデータベースがインポートされているか確認できます。

 コマンドプロンプトが app\public ではないときは、cdコマンドでpublicフォルダーまで移動してから上記コマンドを実行するか、相対パスでファイルを指定します。

インポート完了

 以上で、うちで運用しているWordPressサイトでエクスポートしたsqlファイルの容量が110MBの一番大きいサイトをローカル環境に移すことができました。

 ちなみに、ここのdef-4.comサイトはエクスポートファイルが圧縮なしで80MBですが、圧縮したsql.gzファイルだとAdminerでインポートできました。

 手順的には圧縮ファイルでインポートして、それでもダメな場合は未圧縮ファイルでこの記事の手順を試すのがよいかなと思います。

スポンサー リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です