先日、仕事用メインマシンを買い替えて、新たに開発環境を構築したのですが、これまでの環境では正常に動作していた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」をコメントアウトします。
# sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
あとは、「my.cnf」を保存して、サーバーを再起動すればOKです。
これで、無事に「5.5」と同じ挙動になり、エラーも解消されました。