将数据导入MySQL时提示时区问题的解决方法

问题现象描述

将数据导入MySQL时出现如下时区问题。

1
ERROR: The server time zone value 'EDT' 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 specific time zone value if you want to utilize time zone support.

关键过程、根本原因分析

MySQL服务器无法识别JDBC driver的默认时区“EDT”,此时应指定JDBC driver的时区为“UTC”或MySQL服务器的时区。

结论、解决方案及效果

下文以指定JDBC driver的时区为“UTC”为例进行说明。

  1. 打开my_mysql.properties文件。

    1
    vi my_mysql.properties
    

  2. 按“i”进入编辑模式,为文件中的“jdbc”配置添加以下参数。

    1
    serverTimezone=UTC
    

    添加完成后如下图所示。

  3. 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 重新执行加载数据命令。

    1
    ./runDatabaseBuild.sh my_mysql.properties