MySQL5.5では問題なかったSQLが5.6だとエラーになったのでmy.cnfを編集して解決!

解決

先日、仕事用メインマシンを買い替えて、新たに開発環境を構築したのですが、これまでの環境では正常に動作していたWebシステムがエラーを起こすようになりました。

色々と調べた結果、その原因は、最新版の「MAMP」を入れたために、MySQLのバージョンが「5.6」になったことでした。

MySQL5.5では「not null」のカラムに対して「null」を入れようとした際、その型のデフォルト値を入れてくれるんですが、mySQL5.6ではエラーを返すようになっています。

そこで、以下のようにして「5.5」と同じ挙動になるようにしました。

設定ファイル「my.cnf」を作成

MAMP(4.1.1)の初期状態では、「my.cnf」が存在しないので、「/MAMP/Library/support-files/my-default.cnf」を「/MAMP/conf/my.cnf」にコピーします。

my.cnf を修正して再起動

作成した「my.cnf」の最終行「sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES」をコメントアウトします。

あとは、「my.cnf」を保存して、サーバーを再起動すればOKです。

これで、無事に「5.5」と同じ挙動になり、エラーも解消されました。