ローカルホストにMagentoデータベースをインポートしようとすると、問題が発生します。 18個のテーブルをインポートするだけですが、実際には約383個のテーブルが含まれています。以下のエラーが発生します
致命的なエラー:253行目の/usr/share/phpmyadmin/libraries/import.lib.phpで、許可された16777216バイトのメモリサイズが使い果たされました(2089674バイトを割り当てようとしました)。
この問題がどのように構成されるか。 php.ini
を変更する必要がありますか?
これを使って :
c:\mysql\bin\> mysql -u username -p password database_name < filename.sql
コマンドラインを使用してインポートするには
またはphp.iniで
memory_limit = 256M
これを他のより大きな値に変更します。しかし、ダンが言ったように、コマンドラインを使用することが望ましいです。
phpMyAdminは最近私にメモリ制限を吹き込んでいます(そして私は大量のデータをインポート/実行していませんでした)ので、config.inc.phpで次のことを試しました
$cfg['MemoryLimit'] = '128M';
https://docs.phpmyadmin.net/en/latest/config.html#cfg_MemoryLimit
他の回答が述べているように、php.iniを変更できます。ローカルホストでは問題ありません。しかし、より多くの仮想ホストを備えたWebサーバーでは、おそらくすべてのホストのメモリ制限を増やしたくないでしょう(これはphp.iniのディレクティブが行うことです)。
特定の仮想ホストのメモリ制限を増やすには、仮想ホストの設定を編集します。例えば:
<VirtualHost *:443>
#your virtualhost settings
php_value memory_limit 64M #place any number you need
</VirtualHost>
または、同じphp_valueを.htaccessファイルに配置できますが、仮想ホストはこの値の変更を許可する必要があります。
これを試してください http://dev.mysql.com/doc/refman/5.5/en/mysqlimport.html 930MBのデータベースをインポートできました。
データベースの移行でも同じ問題がありました。
次のようなクエリを使用して、エクスポートの構成をビルドファイルに変更してみてください。
INSERT INTO tbl_name VALUES (1,2,3)
このようなクエリを作成していたとき:
INSERT INTO tbl_name (col_A,col_B) VALUES (1,2,3), (4,5,6), (7,8,9)
クエリが大きすぎてメモリに割り当てることができませんでした。変更したところ、小さなクエリが多かったので、メモリに問題はありませんでした。
私の場合、ファイルpcre.jit=0
でphp.ini
を指定することで機能します。