/var/log/mysqld.log
を見ていたら以下の Warning が結構出ていたので対応した。
[Warning] CA certificate ca.pem is self signed. [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
まずは CA 関連を対応するため証明書を作成(自分の環境では既に作成されていた)。
$ cd /var/lib/mysql $ mysql_ssl_rsa_setup $ chown mysql:mysql *.pem
/etc/my.cnf
に証明書設定を追加。
# ssl設定 ssl-ca=/var/lib/mysql/ca-key.pem ssl-cert=/var/lib/mysql/server-cert.pem ssl-key=/var/lib/mysql/server-key.pem
MySQL再起動。
$ service mysqld restart
有効になっているか確認。ssl関連が YES になっているからOK。ログにもWarningは出ていないことを確認した。
$ mysql -u root -p > show variables like '%ssl'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_openssl | YES | | have_ssl | YES | +---------------+-------+
'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' も対応。/etc/my.cnf
の sql_mode に以下を追加。
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZEROM
MySQL再起動。ログにWarningが出ていないことを確認した。
$ service mysqld restart
NO_ZERO_DATE, NO_ZERO_IN_DATE、ERROR_FOR_DIVISION_BY_ZERO については↓詳しい説明があるので読んでおく。