在执行如下代码的时候,客户端工具是可以连接的:
但是用代码去访问的时候,却总是报错误:
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.
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:87)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:61)
com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:71)
com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:76)
com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862)
com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:444)
com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230)
com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226)
---------------------
作者:Going_cc
来源:CSDN
原文:https://blog.csdn.net/weixin_39033443/article/details/81711306
版权声明:本文为博主原创文章,转载请附上博文链接!
代码连接mysql的demo如下:
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/activiti";
String dbName = "root";
String password = "123456";
// 注册 JDBC 驱动
Class.forName(driver);
// 打开链接
System.out.println("连接数据库...");
conn = DriverManager.getConnection(url,dbName,password);
// 执行查询
System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement();
String sql;
sql = "SELECT rid, rolename FROM role";
ResultSet rs = stmt.executeQuery(sql);
// 展开结果集数据库
while(rs.next()){
// 通过字段检索
int rid = rs.getInt("rid");
String rolename = rs.getString("rolename");
// 输出数据
System.out.print("ID: " + rid);
System.out.print(", 站点名称: " + rolename);
System.out.print("\n");
}
// 完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
// 处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
// 处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}// 什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
后经查询,引入如下方法解决:
即执行命令:
show variables LIKE '%time_zone%';
set global time_zone = '+8:00';
话不多说,从错误即可知道是时区的错误,因此只要将时区设置为你当前系统时区即可,
因此使用root用户登录mysql,按照如下图所示操作即可。
我电脑的系统为北京时区,因此在系统中设置后,再连接数据库运行,一切OK!