这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战
前言
- 在线音乐戳我呀!
- 音乐博客源码上线啦!
- 前几篇讲了Docker的安装部署,操作算是比较简单的。(入门级)
- 最近Oracle异常崩溃(原因不详,排查之后会跟朋友们说哦),导致Java程序被牵连,但今天的主题不是Oracle,而是Java。
- 接下来将分享Java连接Oracle报错,一五一十盘出。
- Are you ready ?
欢迎来到我瑶族大部落 ~
Java连接Oracle
-
java连接oracle失败
-
部署到Docker报错,timezone region not found?
一、java连接oracle失败
今天Oracle安装好之后,开始用springboot连接oracle数据库,结果报错了,我们不慌不张的看看报错信息:
java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor]
经检查,说由于连接的URL写法错误导致。
原URL:"jdbc:oracle:thin:@localhost:1521:helowin"
更改后:"jdbc:oracle:thin:@localhost:1521/helowin"
将符号:修改为/即可。
二、部署到Docker报错,timezone region not found?
2.1 timezone region not found
于是我们开开心心的将jar包丢到Docker上,run的时候,日志也学java程序,向我吐了块
ORA-01882:timezone region not found
2.2 错误原因
是因为docker 容器内时区不是 CST 导致。
2.3 解决办法
在dockerfile 文件中增加一下命令。
#设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
复制代码
设置一下时区,在重新run一下,程序走起success!
三、小知识
3.1 缘由
因为我容器启动的时候没有指定指定时区,所以默认是慢了八个小时;
退出容器,然后执行。
docker cp /etc/localtime 容器id:/etc/localtime
复制代码
然后再docker restart 容器id。
3.2 关于容器与时区。
通过date命令查看时间。
查看主机时间:
[root@localhost ~]# date
2016年 07月 27日 星期三 22:42:44 CST
复制代码
查看容器时间:
root@b43340ecf5ef:/#date
Wed Jul 27 14:43:31 UTC 2016
复制代码
可以发现,他们相隔了8小时。
-
CST 应该是指(China Shanghai Time,东八区时间)
-
UTC 应该是指(Coordinated Universal Time,标准时间)
后记
接触Java的时候,还是在上家前后端都做的日子。其实对于新人前后端都接触的话,对个人生涯我觉得是很有帮助的。
因为前后端都懂的话,有很多好处,就比如:有一个需求来了,可能这个前端做是可以实现的,但后端做,可能会更好(可能对于性能等等来说)
更能知道哪端做会更合适、更优 ~
👍 如果对您有帮助,您的点赞是我前进的润滑剂。
相关文献
ORA-01882 timezone region not found
解决netcore在docker容器中连接oracle报错(timezone region not found)
Docker 解决容器时间与主机时间不一致的问题三种解决方案
以往推荐
vue-typescript-admin-template后台管理系统
近期评论