应用程序连接MySQL时,无法识别time zone,报错信息如下:
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.
配置MySQL数据库的time zone
查询数据库当前的time zone
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set
在my.ini添加default-time-zone,这里设置成东八区
default-time-zone = '+8:00'
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | |
| time_zone | +08:00 |
+------------------+--------+
2 rows in set
如果配置错误,报如下信息
[ERROR] Fatal error: Illegal or unknown default time zone 'timezone'
配置应用程序的数据库URL
url: jdbc:mysql://localhost:3306/abc?createDatabaseIfNotExist=true&characterEncoding=utf-8serverTimezone=UTC
MySQL错误调试
当调试MySQL时,通过命令行或者服务启动时,无法定位问题,需要通过日志输出查找问题,MySQL的日志说明详见官方文档。
级别 | 名称 | 描述 |
---|---|---|
1-log-error | 错误日志 | 记录发生错误的事件 |
2- log | 查询日志 | 记录所有的查询语句 |
3-slow_query_log | 慢查询日志 | 记录所有查询时间慢于某个值(long_query_time)的查询事件 |
4-log_bin | 二进制日志 | 记录所有更新和删除的语句,用于恢复到崩溃前数据库 |
#log-error
log-error=D:/mysql-5.6.49-winx64/log/err.log
#log
log_output=FILE
general_log=on
general_log_file=D:/mysql-5.6.49-winx64/log/query.log
#slow_query_log
slow_query_log=on
long_query_time =2
slow_query_log_file=D:/mysql-5.6.49-winx64/log/slowquery.log
#log_bin
server-id=1
log_bin=D:/mysql-5.6.49-winx64/log/binlog-bin
log_bin_index=D:/mysql-5.6.49-winx64/log/binlog