使用Golang通过godror连接Oracle数据库遇ORA-12560错误求助
排查Golang godror连接Oracle出现ORA-12560错误的方案
修正连接字符串格式
你的DSN写法存在冗余空格,godror对格式要求严格,建议改成无多余空格的写法:db, err := sql.Open("godror", `user="username" password="password" connectString="hostname:port/service_name"`)或者更简洁的格式:
db, err := sql.Open("godror", `username/password@hostname:port/service_name`)确认Oracle客户端依赖有效性
godror依赖Oracle Instant Client,即使配置了ORACLE_HOME/TNS_ADMIN,也要验证:- 本地Instant Client版本与远程Oracle服务器版本兼容(优先同版本或高版本向下兼容)
- 环境变量在当前运行程序的终端会话中已生效,比如Linux需执行
source ~/.bashrc后重启程序,Windows需重启终端再运行
测试网络连通性
用telnet hostname port或nc -zv hostname port测试本地到Oracle服务器端口的连通性,排除防火墙拦截、端口映射错误等问题尝试TNS名称连接
若已配置TNS_ADMIN,在tnsnames.ora中定义数据库别名后,改用TNS名称连接:db, err := sql.Open("godror", `user="username" password="password" connectString="TNS_ALIAS"`)先用
tnsping TNS_ALIAS命令验证TNS配置是否生效检查文件权限
确保运行Golang程序的用户拥有读取Oracle客户端配置文件(如tnsnames.ora、sqlnet.ora)的权限,Linux下需确认文件所属组和权限设置
内容的提问来源于stack exchange,提问作者flyme2themoon
相关产品推荐
相关产品推荐

