web入門
すばらしきwebの世界

phpmyadminでデータベースへ画像ファイルを挿入する際のエラー

2016.10.04未分類

掲題の件、phpmyadminを使用して、画像や動画をDBに格納する際にエラーとなりました。

・エラー
MySQL server has gone away
#1118 – The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.


原因と対応

原因と対応を以下に記載します。


原因

大容量のクエリーでエラーとなっているようです。


対応

下記、mysqlの設定ファイル項目の内容を書き換えます。

・項目
max_allowed_packet

デフォルトは16Mです。値は任意の大きい数字にします。

それでも違うエラーが表示されます。

#1118 – The size of BLOB/TEXT data inserted in one transaction is greater than 10% of redo log size. Increase the redo log size using innodb_log_file_size.

エラーに従い、my.iniの下記項目の値を変更します。

・項目
innodb_log_file_size

設定ファイルの内容を変更した際は、mysqlを再起動してください。

ワーニングは起こりますが、画像や動画が登録出来ました。


残課題

設定を戻して試しましたが今度はエラーが出なくなりました。。。
あと、ワーニングを気になります。


mysqlの設定ファイル

mysqlが使用している設定ファイルは以下から確認できます。


起動バッチファイル

XAMMPでSQLを起動する際、設定ファイルを読み込んでいます。mysqlの起動バッチを確認します。

・起動バッチ
C:\xampp\mysql_start.bat

このファイルを見ると以下のような記述があります。

mysql\bin\mysqld –defaults-file=mysql\bin\my.ini

すなわち、mysql\bin\my.ini の設定ファイルを読みんでいます。


最後に

とりあえず備忘録として残します。

色々よくわかりませんでしたので、今後何かわかったら更新します。