1

大量のデータをデータベースに入れようとしています。

データが1Mbをはるかに超えると、500-Mysqlがなくなったというエラーが発生することを確認しました。

データが1Mbマークに近づくと、最大パケットサイズに達したことを示すエラーが表示されます。

データが1Mb以下の場合、クエリは毎回成功します。

my.ini(Windowsマシンで実行しています)でmax_allowed_pa​​cketを確認し、16Mに設定し、さらに高くしました。mysqlも再起動したことを確認しました。

しかし、同じ振る舞いが起こっています。私が見逃している別の設定がどこかにありますか?参考までに、私はPHPを使用してクエリを実行しています。

ありがとう。

4

4 に答える 4

1

max_allowed_pa​​cketをグローバル変数として設定できます。MYSQLサービスを再起動せずに、この変数を動的に設定できます。

最大1ギガバイトまで増やすことができます。挿入する予定の最大のデータ文字列の少なくとも2倍に設定することをお勧めします。もちろん、来週は予想よりも大きなファイルを処理する必要があるため、拡張の余地があります。

PHPコードからmax_allowed_pa​​cketを動的に設定する例をここで参照してください: http ://www.devplace.nl/blog/storing-large-values-in-mysql-fields-with-php

于 2013-02-01T21:10:12.287 に答える
1

私は同様の問題を抱えていて、php.iniのupload_max_filesizememory_limitを増やすことで解決しました

于 2013-02-01T21:12:04.807 に答える
0

2か所で変更する必要があったことがわかりました。phpMyAdminで、設定と変数の下で、構成で変更したにもかかわらず、許可される最大パケット数が実際にはまだ1Mであることを発見しました。

この新しい情報により、検索に集中することができ、

SET @@ global.max_allowed_pa​​cket = n

これで、グローバル設定を変更する方法が正確にわかりました。

問題は、サーバーがリセットされた場合、元の状態に戻ると思います。設定ファイルを作成する必要があります。私が今必要としないより多くの合併症。

于 2013-02-06T13:45:24.067 に答える
0

fopenファイルハンドルを作成resourceし、をパラメータにバインドします。

于 2013-02-02T13:48:53.607 に答える