Java缓缓连接Oracle,对方向你吐了块红色

976 阅读3分钟

这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

前言

  • 在线音乐戳我呀!
  • 音乐博客源码上线啦!
  • 前几篇讲了Docker的安装部署,操作算是比较简单的。(入门级)
  • 最近Oracle异常崩溃(原因不详,排查之后会跟朋友们说哦),导致Java程序被牵连,但今天的主题不是Oracle,而是Java。
  • 接下来将分享Java连接Oracle报错,一五一十盘出。
  • Are you ready ?

欢迎来到我瑶族大部落 ~

3.jpg

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]

5.png

经检查,说由于连接的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

6.png

2.2 错误原因

是因为docker 容器内时区不是 CST 导致。

2.3 解决办法

在dockerfile 文件中增加一下命令。

#设置时区

ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

7.png

设置一下时区,在重新run一下,程序走起success!

三、小知识

3.1 缘由

因为我容器启动的时候没有指定指定时区,所以默认是慢了八个小时;

8.png

退出容器,然后执行。

docker cp /etc/localtime 容器id:/etc/localtime

然后再docker restart 容器id。

3.2 关于容器与时区。

通过date命令查看时间。

查看主机时间:

[root@localhost ~]# date
20160727日 星期三 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的时候,还是在上家前后端都做的日子。其实对于新人前后端都接触的话,对个人生涯我觉得是很有帮助的。

因为前后端都懂的话,有很多好处,就比如:有一个需求来了,可能这个前端做是可以实现的,但后端做,可能会更好(可能对于性能等等来说)

更能知道哪端做会更合适、更优 ~

👍 如果对您有帮助,您的点赞是我前进的润滑剂。

相关文献

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

ORA-01882 timezone region not found

解决netcore在docker容器中连接oracle报错(timezone region not found)

docker容器内时区和宿主机时区不一致

Docker 解决容器时间与主机时间不一致的问题三种解决方案

以往推荐

前端仔,快把dist部署到Nginx上

多图详解,一次性啃懂原型链(上万字)

老湿说的万物皆对象,你也信?

Vue-Cli3搭建组件库

Vue实现动态路由(和面试官吹项目亮点)

项目中你不知道的Axios骚操作(手写核心原理、兼容性)

VuePress搭建项目组件文档

vue-typescript-admin-template后台管理系统

原文链接

juejin.cn/post/703209…