MySQLのデフォルトの設定ではフィールドデータは1MBまでのパケットしか挿入できません。画像が1MB未満でも他のデータの合計が1MB以上超えると挿入できないので、挿入できるように変更していきます。10月8日記事
目次
必ずバックアップを取るか、設定ファイルの変更部分を#でコメントアウトしておきましょう#がコメントアウトした状態です
[mysqld]の項目で ######(変更点)以下の3行を追加###### innodb_file_format = Barracuda innodb_file_per_table = 1 innodb_large_prefix #max_allowed_packet = 1M がオリジナルで、以下に変更 max_allowed_packet = 8M #innodb_log_file_size = 5M がオリジナルで以下に変更 innodb_log_file_size = 500M #innodb_log_buffer_size = 8M がオリジナルで以下に変更 innodb_log_buffer_size = 800M
※linuxなら、ファイルの場所は /etc/my.cnfです。
一応これで挿入はできるようになるが、phpmyadminでは、「操作」の「テーブルオプション」から「照合順序」を切り替えておく。照合順序は
utf8mb4_general_ci
に設定。※また、コマンドで行う場合にはALTER TABLE テーブル名 COLLATE 新しい照合順序でいけるので、
ALTER TABLE テーブル名 COLLATE utf8mb4_general_ci;
でもいいです。これをすることでUTF-8の4バイト文字も扱えるようになります。
以上