如何使用JDBC连接MySQL 8.x
MySQL 8.x 新版本JDBC连接方式,旧版本,MySQL Connector/J 5.x 版本的连接方式,MySQL 8.x新版本,MySQL Connector/J 6.x之后 的连接方式,新版mysql驱动的url必须设置时区,即serverTimezone=UTC,否则会报错。
1.旧版本,MySQL Connector/J 5.x 版本的连接方式:
url=jdbc:mysql://localhost:3306/thrcloud_db01?useUnicode=true&characterEncoding=utf8driver-class-name=com.mysql.jdbc.Driver
2、MySQL 8.x新版本,MySQL Connector/J 6.x之后 的连接方式:
url=jdbc:mysql://localhost:3306/thrcloud_db01?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=falsedriver-class-name=com.mysql.cj.jdbc.Driver
注意:新版mysql驱动的url必须设置时区,即serverTimezone=UTC,否则会报如下错误:
Java.sql.SQLException:Theservertimezonevalue'?D1ú±ê×?ê±??'isunrecognizedorrepresentsmorethanonetimezone.YoumustconfigureeithertheserverorJDBCdriver(viatheserverTimezoneconfigurationproperty)touseamorespecifctimezonevalueifyouwanttoutilizetimezonesupport.atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)~[mysql-connector-java-8.0.14.jar:8.0.14]atcom.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1464)~[druid-1.0.31.jar:1.0.31]atcom.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1529)~[druid-1.0.31.jar:1.0.31]atcom.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2109)~[druid-1.0.31.jar:1.0.31]Causedby:com.mysql.cj.exceptions.InvalidConnectionAttributeException:Theservertimezonevalue'?D1ú±ê×?ê±??'isunrecognizedorrepresentsmorethanonetimezone.YoumustconfigureeithertheserverorJDBCdriver(viatheserverTimezoneconfigurationproperty)touseamorespecifctimezonevalueifyouwanttoutilizetimezonesupport.atsun.reflect.GeneratedConstructorAccessor29.newInstance(UnknownSource)~[na:na]