web-dev-qa-db-ja.com

phpmyadminのメモリサイズを増やす方法

ローカルホストにMagentoデータベースをインポートしようとすると、問題が発生します。 18個のテーブルをインポートするだけですが、実際には約383個のテーブルが含まれています。以下のエラーが発生します

致命的なエラー:253行目の/usr/share/phpmyadmin/libraries/import.lib.phpで、許可された16777216バイトのメモリサイズが使い果たされました(2089674バイトを割り当てようとしました)。

この問題がどのように構成されるか。 php.iniを変更する必要がありますか?

8
Chauhan

これを使って :

c:\mysql\bin\> mysql -u username -p password database_name < filename.sql

コマンドラインを使用してインポートするには

またはphp.iniで

memory_limit = 256M

これを他のより大きな値に変更します。しかし、ダンが言ったように、コマンドラインを使用することが望ましいです。

15
ayush

phpMyAdminは最近私にメモリ制限を吹き込んでいます(そして私は大量のデータをインポート/実行していませんでした)ので、config.inc.phpで次のことを試しました

$cfg['MemoryLimit'] = '128M';

https://docs.phpmyadmin.net/en/latest/config.html#cfg_MemoryLimit

11

他の回答が述べているように、php.iniを変更できます。ローカルホストでは問題ありません。しかし、より多くの仮想ホストを備えたWebサーバーでは、おそらくすべてのホストのメモリ制限を増やしたくないでしょう(これはphp.iniのディレクティブが行うことです)。

特定の仮想ホストのメモリ制限を増やすには、仮想ホストの設定を編集します。例えば:

<VirtualHost *:443>
   #your virtualhost settings
   php_value memory_limit 64M #place any number you need
</VirtualHost>

または、同じphp_valueを.htaccessファイルに配置できますが、仮想ホストはこの値の変更を許可する必要があります。

1
fandasson

これを試してください http://dev.mysql.com/doc/refman/5.5/en/mysqlimport.html 930MBのデータベースをインポートできました。

1
Adrian P.

データベースの移行でも同じ問題がありました。

次のようなクエリを使用して、エクスポートの構成をビルドファイルに変更してみてください。

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)

クエリが大きすぎてメモリに割り当てることができませんでした。変更したところ、小さなクエリが多かったので、メモリに問題はありませんでした。

0
ppiatek

私の場合、ファイルpcre.jit=0php.iniを指定することで機能します。

0
Lakhan Sharma