ORA-01882: timezone region not found
记一次Oracle的报错,报错信息:java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1ORA-01882: timezone region not found当时我是把项目打包成了一个镜像部署的,然后在测试时出现了该报错。直接百度,返现问题是Oracle的时区问题。然后我容器停了,直接在服务器本机上运行
·
记一次Oracle的报错,报错信息:
java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
当时我是把项目打包成了一个镜像部署的,然后在测试时出现了该报错。
直接百度,返现问题是Oracle的时区问题。
然后我容器停了,直接在服务器本机上运行,就没有报错了。
众所周知,Docker的容器其实就是一个微型的Linux,所以问题应该出在Docker上。
先查看服务器本机的时间:
[root@instance-tnpnvt5z ~]# date -R
Thu, 14 Oct 2021 10:11:27 +0800
时间没错。
再进入docker的容器里看时间:
[root@instance-tnpnvt5z ~]# docker exec -it cbbbf1cf4c15 /bin/bash
root@cbbbf1cf4c15:/# date -R
Thu, 14 Oct 2021 01:47:34 +0000
一看! 好家伙,这时间就有问题。
解决方案:
容器时间和宿主机同步
#在 run 时挂载宿主时间配置
-v /etc/localtime:/etc/localtime
然后重新再运行一次镜像,结果还有报错。
最后我又修改了Dockerfile的配置
在启动jar包时加了一个参数:-Duser.timezone=GMT+08
再一次重新打包,运行,测试,一切正常。没有再报错。
更多推荐
已为社区贡献1条内容
所有评论(0)