!!!
そう。この前の続きです。
[PHP5.6][Codeigniter 3]Unable create file session because No such file or directory
今回はアプリではなく次はDB!!
対処法をブログしていきましょう。
■STRICT_TRANS_TABLES
https://dev.mysql.com/doc/refman/5.6/ja/constraint-invalid-data.html
デフォルト値がないカラムに値なしでinsertしていることに対してMySQLがブチギレしてるようです。
しかもMySQL5.6からsql_modeのデフォルト値がSTRICT_TRANS_TABLESになったことが原因とか。
とりあえずsql_modeをNO_ENGINE_SUBSTITUTIONに変更しちゃいましょう。
■change sql_mode,my.cnf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
mysql> show global variables like 'sql_mode'; +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ | sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION | +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec) mysql> set global sql_mode=NO_ENGINE_SUBSTITUTION; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> show global variables like 'sql_mode'; +---------------+------------------------+ | Variable_name | Value | +---------------+------------------------+ | sql_mode | NO_ENGINE_SUBSTITUTION | +---------------+------------------------+ 1 row in set (0.00 sec) # grep sql /etc/my.cnf [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION # systemctl restart mysqld |
MySQL再起動時に元に戻ってしまうため、my.cnfに上記のように定義するとOK!!
■まとめ
詳しくはそーだいさんに聞いてみよう。
0件のコメント