jdbc連接數(shù)據(jù)庫(kù) The server time zone value '?й???????' is unrecognized or represents more... 錯(cuò)誤
問(wèn)題描述
連接數(shù)據(jù)庫(kù)代碼示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
static String host = "localhost";
static int port = 3306;
static String database = "demo";
static String encoding = "UTF-8";
static String loginName = "root";
static String password = "root";
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnction() throws SQLException {
String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s", host, port, database, encoding);
return DriverManager.getConnection(url, loginName, password);
}
public static void main(String[] args) throws SQLException {
System.out.println(getConnction());
}
}
運(yùn)行main方法卻出現(xiàn)異常
Exception in thread "main" 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.
解決方法
根據(jù)異常提示可知需要添加對(duì)應(yīng)的時(shí)區(qū),修改url即可
String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s&serverTimezone=UTC", host, port, database, encoding);
完整代碼
package cn.niriqiang.tmail.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtil {
static String host = "localhost";
static int port = 3306;
static String database = "demo";
static String encoding = "UTF-8";
static String loginName = "root";
static String password = "root";
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getConnction() throws SQLException {
String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s&serverTimezone=UTC", host, port, database, encoding);
return DriverManager.getConnection(url, loginName, password);
}
public static void main(String[] args) throws SQLException {
System.out.println(getConnction());
}
}
運(yùn)行main方法成功
com.mysql.cj.jdbc.ConnectionImpl@1e0f4f