Windows10にMAMPをセットアップ
Windows10にWordPressの環境をセットアップしたくて、MAMP(2019/1/1時点の最新version4.1)をインストールした際にMySQLのログにWarningが出ているのに気づいたので、そのエラーを解消する方法を調べたのでそのメモ。
MySQLのエラーログは、Windowsの場合、インストールしたフォルダの以下の場所で確認できます。(私はC:\MAMPにインストールしました)
C:\MAMP\logs\mysql_error_log.err
TIMESTAMPのWarningエラー確認
MySQLのエラーログファイルを開いてみると以下のようなエラーを出力していました。(横に長いので改行をいれています)
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
直訳すると「暗黙のDEFAULT値を持つTIMESTAMPは非推奨です。–explicit_defaults_for_timestampサーバーオプションを使用してください。(詳細はドキュメントを参照)」と言われている様子。この挙動はMySQLの5.6.6から非推奨になったようです。なので、–explicit_defaults_for_timestampオプションの初期設定をONにしてあげればOKそう。
MySQLの設定ファイルへの書込み
–explicit_defaults_for_timestampオプションをMySQLの設定ファイルに追記します。WindowsとLinux(Mac)だとファイルパスやファイル名が違うので間違えないように。普段はMacを使っているので、これに少しハマってしまった。
// Windows10の場合 C:\MAMP\conf\mysql\my.ini // linux・Macの場合 /Applications/MAMP/conf/my.cnf
このmy.iniを開いて、以下の個所に追記します。
# The MySQL server [mysqld] explicit_defaults_for_timestamp = 1 port = 3306 socket = mysql skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M basedir = C:/MAMP/bin/mysql/ datadir = C:/MAMP/db/mysql/
3行目に追記しました。これを保存して、MySQLを再起動すると……
エラーが消えた!\(^o^)/
こういう細かいエラーは出ないように積極的に解消方法を憶えていきたい。
データベースに値を持っているのね。なるほど、これもメモ。
mysql> SHOW GLOBAL variables LIKE 'explicit_defaults_for_timestamp'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | explicit_defaults_for_timestamp | ON | +---------------------------------+-------+ 1 row in set (0.00 sec)