Oracle数据库连接时的IP地址和端口号设置

上周与同事连接到 Oracle 时感到很沮丧。

2 02 3 年3 月1 5 日,我在我们公司的服务器上配置了Oracle连接。

我的朋友正在使用另一台机器,IP是1 9 2 .1 6 8 .1 .1 05 ,端口号是1 5 2 1 ,服务名称是orcl。

连接字符串的写法如下: sql CONNECT scott/tiger@//1 9 2 .1 6 8 .1 .1 05 :1 5 2 1 /orcl
或用 Java 代码编写: 爪哇 String url = "jdbc:oracle:thin:@1 9 2 .1 6 8 .1 .1 05 :1 5 2 1 /orcl"; Connection connection = DriverManager.getConnection(url, "scott", "tiger");
关键是将ojdbc8 .jar放到项目中。

然后就连接失败,查了半天。

发现IP地址错误,修改为1 9 2 .1 6 8 .1 .1 05 ,成功了。

监听器没有启动也没关系,用lsnrctl start启动即可。

错误的服务名称也是一个大问题。
登录服务器,使用lsnrctl服务查看是否有。

现在使用HikariCP连接池,速度肯定更快。
java HikariConfig 配置 = new HikariConfig(); config.setJdbcUrl("jdbc:oracle:thin:@1 9 2 .1 6 8 .1 .1 05 :1 5 2 1 /orcl"); config.setUsername("用户"); config.setPassword("密码"); HikariDataSource ds = new HikariDataSource(config);
如果端口不是默认端口,则必须更改listener.ora文件,然后重新启动lsnrctl reload。

多实例环境下,注意服务名称冲突。

算了,就这样吧。

golang通过go-ora连接oracle数据库

说白了,使用go-ora连接Oracle时要做三件事:连接、检查、不占用资源。

扩展,有两个关键点:首先使用sql.Open搭建桥,参数写成oracle://user:pass@host:1 5 2 1 /orcl,SID则添加?SID=orcl即可。
去年我们运行该项目时就遇到了这个陷阱。
使用服务名称比使用 SID 安全得多。
另外,log.Fatal应该添加在db.Ping()之后。
去年,一位同事忘记了这一步,跑了一晚上的程序才发现。
老实说,这是一个陷阱。

一开始我以为推迟就足以释放资源,但后来我发现我错了。
我需要确保 rows.Close() 和 db.Close() 都被推迟。
尤其是大数据量的查询,不禁用的话内存会爆炸。

最后提醒:使用flag.StringVar传递参数时,不要像密码一样输入太多默认值。
上次有新人设置密码通过,整个注册表都暴露了。

ORA-06413: 连接未打开

哎呀,这个 ORA-06 4 1 3 错误,让我告诉你,我在弄清楚它时遇到了很多麻烦。
那一年,我还在上海,带领一个小团队做一个项目。
我使用的PL/SQL开发者突然无法连接数据库,报了这个错误。
检查日志后发现,我安装这个工具时,路径很复杂。
C盘Program Files区域有括号,系统读取时出现混乱。

我会告诉你直接卸载它,不要犹豫。
找一个干净的地方安装它,比如D盘,直接安装PLSQL,不用花里胡哨。
然后我卸载并重新安装,并选择完全字母数字路径。
嘿嘿,马上就修好了。
不要忘记检查环境变量 ORACLE_HOME 以查看它是否也指向有问题的路径。

此外,连接时请确认用户名、密码、IP 端口和服务名称。
他们是对的吗?我记得我连续尝试了三次才完成这个项目,每次都有轻微的变化。
这件事是最烦人的事,不过能修好就好了。

哦,顺便说一句,如果您使用的是旧版本,请尝试升级客户端。
有时版本不匹配可能会导致此问题。
在过去的十年里我经历了很多陷阱,所以我告诉你真相。
如果实在不行就找官方文档或者技术支持,他们都是专业人士。