使用最新版本MySQL8.0.16报错记录

1.错误:[S1009] The connection property 'zeroDateTimeBehavior' acceptable values are: 'CONVERT_TO_NULL','EXCEPTION' or 'ROUND'.The value 'convertToNull' is not acceptable.

使用最新版本MySQL8.0.16报错记录_第1张图片

修改方式: zeroDateTimeBehavior=convertToNull改为zeroDateTimeBehavior=CONVERT_TO_NULL 

2.错误 :[08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.

修改:

1.检查user和password是否有错。

2.检查连接池是否正确

使用最新版本MySQL8.0.16报错记录_第2张图片

 3.试试将URL改成这个:jdbc:mysql://localhost:3306/dbname?useSSL=false&serverTimezone=UTC

 

报错1:

Sun Oct 14 00:45:30 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+,5.6.26+和5.7.6+的SSL连接要求,如果未设置连接方式,则默认情况下必须建立SSL连接。对于不使用SSL的现有应用程序,服务器的验证证书属性设置为“false”。您需要通过设置useSSL=false来显式禁用SSL,或者设置useSSL=true并提供服务器的验证证书。

解决方法:

1、数据库URL连接地址添加useSSL=false,适用于测试。

2、数据库URL连接地址添加useSSL=true,并且提供服务器的验证证书。

jdbc.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT&useSSL=false

 

报错2

2018-10-14 00:45:30,876 ERROR [DruidDataSource.java:616] : init datasource error

java.sql.SQLException: The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

服务器时区值“????±××?±?无法识别或代表一个以上的时区。如果希望利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更具体的时区值。

解决方法:

使用的MySQL数据库版本8.0.12,数据库连接驱动是8.0.12。

由于数据库和系统时区差异造成报错,需要在数据库URL连接地址后面加上serverTimezone=GMT。(或UTC) 

如果需要使用gmt+8时区,需要写成GMT%2B8,否则会被解析为空。

    mysql

    mysql-connector-java

    8.0.12

jdbc.url=jdbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT&useSSL=false

 

报错3:

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

不建议使用驱动类'com.mysql.jdbc.Driver'。新的驱动程序类是'com.mysql.cj.jdbc.Driver',驱动程序是通过SPI自动注册的,通常是不需要手动加载驱动类。

 

解决方法:

MySQL数据库8.0.12使用的驱动类为com.mysql.cj.jdbc.Driver,不要使用旧的驱动类。

jdbc.driverClass=com.mysql.cj.jdbc.Driver

报错4:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

最简单的解决方法是在连接后面添加 allowPublicKeyRetrieval=true

 

文档中(https://mysql-net.github.io/MySqlConnector/connection-options/)给出的解释是:

如果用户使用了 sha256_password 认证,密码在传输过程中必须使用 TLS 协议保护,但是如果 RSA 公钥不可用,可以使用服务器提供的公钥;可以在连接中通过 ServerRSAPublicKeyFile 指定服务器的 RSA 公钥,或者AllowPublicKeyRetrieval=True参数以允许客户端从服务器获取公钥;但是需要注意的是 AllowPublicKeyRetrieval=True可能会导致恶意的代理通过中间人攻击(MITM)获取到明文密码,所以默认是关闭的,必须显式开启。
 

你可能感兴趣的:(使用最新版本MySQL8.0.16报错记录)