trino(版本448)启动后,当查询MySQL的源,提示连不上MySQL的库。同样的配置,查询PG数据源都可以正常使用。
解决步骤:
1、先把日志改为debug级别看下报错明细,
代码语言:txt复制cat log.properties
# 设置日志级别,有四个级别:DEBUG, INFO, WARN and ERROR
io.trino=DEBUG
2 、再次启动trino,并执行mysql数据源的查询操作
3、查看trino的日志,发现有如下内容
代码语言:txt复制Caused by: com.mysql.cj.exceptions.CJException: Unknown or incorrect time zone: 'Asia/Shanghai'
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:104)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:149)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:127)
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:848)
at com.mysql.cj.protocol.a.NativeProtocol.checkErrorMessage(NativeProtocol.java:771)
at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:701)
at com.mysql.cj.protocol.a.NativeProtocol.configureTimeZone(NativeProtocol.java:2276)
at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2282)
at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1269)
at com.mysql.cj.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:848)
... 81 more
4、github上搜下类似issue,找到解决方法
代码语言:txt复制在 jvm.config 最后加一行:
-Duser.timezone=GMT 8
5、再次重启trino(注意验证没问题后,把log从DEBUG再改回INFO级别)