这个错误是什么意思? AH01215:架构 .myuser@mydb。密码 .mypass

这个错误是什么意思? AH01215:架构 .myuser@mydb。密码 .mypass

我正在尝试使用 Apache 在我的 Redhat 7 Linux Web 服务器上部署一个名为“Create”的页面。当我尝试访问我的页面时,我从错误日志中收到以下错误消息:

[cgi:error] [pid 23367:tid 3936258880] [client 142.139.205.16:60557] AH01215: Schema .myuser@mydb . Password : /my/directory/cgi-bin/Create - Error while trying to retrieve text for error ORA-12154

我在网上查看过,但找不到任何有关此错误的信息。有人能指出我这个错误的含义的正确方向吗?

答案1

这似乎不是单个错误消息,而是由于软件堆栈深处发生的错误以及在错误消息从堆栈中找到出路时对错误消息做出贡献的所有层而导致的组合。

“架构”和“密码”这两个词一起表明该脚本可能正在尝试连接到数据库。

消息的尾部是Error while trying to retrieve text for error ORA-12154。 ORA-nnnnn 是 Oracle 数据库或其驱动程序中的错误代码的标准格式。因此,您的脚本可能尝试mydb使用用户/架构名称mypass和密码连接到具有服务名称的 Oracle 数据库mypass,遇到错误 ORA-12154,然后由于某种原因无法检索相应的错误消息文本。

但是 ORA-12154 是什么意思呢?谷歌来救援!

错误消息的完整英文文本似乎是:

ORA-12154: TNS:could not resolve the connect identifier specified

似乎脚本使用的任何数据库客户端/驱动程序都不知道如何访问数据库mydb

如果您有一个tnsnames.ora定义数据库连接的网络连接参数的文件,则应该验证脚本是否获取了正确的ORACLE_HOME以及任何其他所需的 Oracle 特定环境变量,以便脚本使用的数据库客户端/驱动程序能够真正找到tnsnames.ora文件。然后,确保该文件中提到的所有主机名/IP 地址/端口都是正确的,并且所有主机名都是可解析的。

如果 CGI 脚本在 chroot 环境中执行,它可能无法访问/etc/resolv.conf或访问任何 DNS 解析器库,因此无法解析任何主机名。

或者,如果您的 Oracle 驱动程序/客户端配置为使用其他一些命名方法(Oracle 技术术语)要查找数据库连接参数,您需要找出使用了哪种方法以及它是否为数据库服务名称生成有效的结果mydb。您可能需要与数据库管理员交谈:“我的客户端已配置像这样,并且我收到 ORA-12154 错误消息。你觉得这些有什么不对吗?”

哦,既然您已经将密码公开发布到数据库,您可能真的想立即更改它。

答案2

为了解决我的问题,我必须做的是修改我的 oracle 配置文件中的代码:/etc/profile.d/oracle.sh这样它就可以为每个人运行。它被编码为仅针对特定组中的用户运行。

感谢大家的意见!

相关内容