CentOS6.6 にて MySQL5.6 を設定しています。
SQLのINSERTでなにやらエラーが発生。#1364 - Field 'hogehoge' doesn't have a default value
ググって分かったことは
「Null を入れてはいけないところに、Null を入れた」です。
このブログ等参考にさせていただきました。
http://www.seeds-std.co.jp/seedsblog/1035.html
実行したSQLにはINSERTで何も入れてない項目があります。
でも、これができないと私は困ります。
sql_mode の「STRICT_TRANS_TABLES」を消せば良いことが分かりました。
「SET @@GLOBAL.sql_mode='';」をSQLで実行すれば設定可能です。
しかし、MySQLを再起動してしまうと、また戻ってしまいます。
そこで、「my.cnf」に設定して、起動時に実行されるようにすれば良いとのこと。
で、「/etc/my.cnf」にあると・・・・ん?
ないです。
試しにこのここに書き込んで見ましたがダメです。
違うところに設定があるようです。
さらにググると、こちらのブログを発見
http://oranie.hatenablog.com/entry/20130402/1364906656
「usr/my.cnf」って書いてありました。
開いてみたらありました。そこでsql_modeを変えます
「sql_mode=NO_ENGINE_SUBSTITUTION」
「STRICT_TRANS_TABLES」だけ削除してみました。
これで再起動してもsql_modeは保持されるようになりました。
※Linuxはあまり詳しくないので、間違っていたらご指摘頂けると幸いです。。
SQLのINSERTでなにやらエラーが発生。#1364 - Field 'hogehoge' doesn't have a default value
ググって分かったことは
「Null を入れてはいけないところに、Null を入れた」です。
このブログ等参考にさせていただきました。
http://www.seeds-std.co.jp/seedsblog/1035.html
実行したSQLにはINSERTで何も入れてない項目があります。
でも、これができないと私は困ります。
sql_mode の「STRICT_TRANS_TABLES」を消せば良いことが分かりました。
「SET @@GLOBAL.sql_mode='';」をSQLで実行すれば設定可能です。
しかし、MySQLを再起動してしまうと、また戻ってしまいます。
そこで、「my.cnf」に設定して、起動時に実行されるようにすれば良いとのこと。
で、「/etc/my.cnf」にあると・・・・ん?
ないです。
試しにこのここに書き込んで見ましたがダメです。
違うところに設定があるようです。
さらにググると、こちらのブログを発見
http://oranie.hatenablog.com/entry/20130402/1364906656
「usr/my.cnf」って書いてありました。
開いてみたらありました。そこでsql_modeを変えます
「sql_mode=NO_ENGINE_SUBSTITUTION」
「STRICT_TRANS_TABLES」だけ削除してみました。
これで再起動してもsql_modeは保持されるようになりました。
※Linuxはあまり詳しくないので、間違っていたらご指摘頂けると幸いです。。
※コメント投稿者のブログIDはブログ作成者のみに通知されます