在 Hyperledger-Fabric-CA Server 中使用 MySQL 时如何修复 "Error creating certificates table: Error 1067: Invalid default value for 'expiry'"?

How to fix "Error creating certificates table: Error 1067: Invalid default value for 'expiry'" while use MySQL with Hyperledger-Fabric-CA Server?

我正在使用 mySQL 数据库设置 Hyperledger-Fabric-CA-Server。创建表格时出现以下错误。 [错误] 初始化数据库时出错:无法创建 MySQL tables:创建证书时出错 table:错误 1067:'expiry'

的默认值无效
2019/10/20 08:28:36 [INFO] Configuration file location: /home/adnan/ca-server/fabric-ca-server-config.yaml
2019/10/20 08:28:36 [INFO] Starting server in home directory: /home/adnan/ca-server
2019/10/20 08:28:36 [INFO] Server Version: 1.4.4
2019/10/20 08:28:36 [INFO] Server Levels: &{Identity:2 Affiliation:1 Certificate:1 Credential:1 RAInfo:1 Nonce:1}
2019/10/20 08:28:36 [INFO] The CA key and certificate already exist
2019/10/20 08:28:36 [INFO] The key is stored by BCCSP provider 'SW'
2019/10/20 08:28:36 [INFO] The certificate is at: /home/adnan/ca-server/ca-cert.pem
2019/10/20 08:28:36 [ERROR] Error occurred initializing database: Failed to create MySQL tables: Error creating certificates table: Error 1067: Invalid default value for 'expiry'
2019/10/20 08:28:36 [INFO] Home directory for default CA: /home/adnan/ca-server
2019/10/20 08:28:36 [INFO] Operation Server Listening on 127.0.0.1:9443
2019/10/20 08:28:36 [INFO] Listening on http://0.0.0.0:7054

如果您使用 MySQL 5.7,则需要从 SQL 模式中删除 NO_ZERO_DATE。在 MySQL 的更高版本中,我相信此设置已被删除,但在启用 strict 模式时包含在内(因此在这种情况下,您需要禁用严格模式)。