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)