编程访问Mysql数据库时,报出时区错误如下: The server time zone value 'й' is unrecognized or represents more than one time zone 通常有以下两种解决方法: 第一,在数据库连接语句后添加?serverTimezone=UTC,即默认0时区,但是要注意,该语句需要跟在数据库连接语句的第一个位置,否则会报错,例如: jdbc.url=jdbc:mysql://localhost:3306/testdatabase?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8 但是这会存在一个问题,在向数据库插入时间字段时,时间会比当前时间早8小时,即当前系统时间减8小时。 第二,修改Mysql的时区为东8区,执行如下命令即可: set global time_zone='+8:00'
package pkage; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectDB { // 定义MySQL的数据库驱动程序 public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver"; // 定义MySQL数据库的连接地址 public static final String DBURL = "jdbc:mysql://localhost:3306/taobao"; // MySQL数据库的连接用户名 public static final String DBUSER = "root"; // MySQL数据库的连接密码 public static final String DBPASS = "admin"; public static void main(String[] args) { Connection conn = null ; // 数据库连接 try{ Class.forName(DBDRIVER) ; // 加载驱动程序 }catch(ClassNotFoundException e){ e.printStackTrace() ; } try{ conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ; }catch(SQLException e){ e.printStackTrace() ; } System.out.println(conn) ; // 如果此时可以打印表示连接正常 try{ conn.close() ; // 数据库关闭 }catch(SQLException e){ e.printStackTrace() ; } } }