2011-02-01 21 views
5

localhostでmagentoデータベースをインポートしようとしたときに問題が発生しました。それはちょうど18テーブルをインポートしますが、実際には約383テーブルを含んでいます。以下のエラーが表示されますphpmyadminのメモリサイズを増やす方法

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 2089674 bytes) in /usr/share/phpmyadmin/libraries/import.lib.php on line 253

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

+3

を変更します。より良い解決策は、phpmyadminを使用しないことです。 mysqlコマンドラインクライアントを使用して大きなファイルをインポートします。 –

答えて

14

使用本:

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

は、いくつかの他の大きな値にphp.iniでコマンドラインを

又は を用い

memory_limit = 256M 

変化これをインポートします。しかしダン氏によると、コマンドラインの使用が望ましいと言われています。

10

PHPMyAdminのは、最近私にメモリ制限を吹いてきた(と私も大量のデータを実行/インポートされなかった)ので、私はちょうど私のconfig.inc.phpに

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

を以下を試してみましたhttp://wiki.phpmyadmin.net/pma/Config#MemoryLimit

+0

これは、PHPMyAdminのメモリを実際に増加させる唯一のソリューションでした。それにもかかわらず、私はコマンドラインのインポートに落ちなければならなかった... – gaborsch

1

その他の回答に記載されているように、php.iniを変更することができます。それはローカルホスト上でOKかもしれません。しかし、より多くのバーチャルホストを持つウェブサーバでは、おそらくすべてのホストのメモリ制限を増やしたくないでしょう(これがphp.iniの指示と同じです)。

特定の仮想ホストの仮想ホストを編集する場合にのみ、メモリ制限を設定します。たとえば:

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

それとも、あなたの.htaccessファイルに同じはphp_valueを配置することができますが、あなたのバーチャルホストは、この値を変更できるようにする必要があります。

0

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

このようなクエリを使用してファイルを構築するために、エクスポートの設定を変更してください:

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

使用この:

編集php.iniファイル:はい、php.iniのメモリ制限を増やす

memory_limit = 256M 
関連する問題