這個錯誤是什麼意思?AH01215:架構 .myuser@mydb。密碼 .mypass
我正在嘗試使用 Apache 在我的 Redhat 7 linux Web 伺服器上部署一個名為“創建”的頁面。當我嘗試訪問我的頁面時,我從錯誤日誌中收到以下錯誤消息:
[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
我在網上查看過,我找不到有關此錯誤的任何資訊。有人可以為我指出這個錯誤的正確方向嗎?
為了解決我的問題,我必須做的是修改我的 oracle 配置文件中的程式碼:
/etc/profile.d/oracle.sh
所以它適用於所有人。它被編碼為僅針對特定組中的使用者執行。謝謝大家的意見!
這似乎不是一個單一的錯誤消息,而是由於錯誤發生在軟體堆棧深處的幾層以及所有層在錯誤消息中找到它的出路時導致錯誤消息的一部分而導致的組合。
“Schema”和“Password”這兩個詞一起表明該腳本可能正在嘗試連接到數據庫。
消息的結尾是
Error while trying to retrieve text for error ORA-12154
. ORA-nnnnn 是來自 Oracle 數據庫或其驅動程序的錯誤程式碼的標準格式。mydb
因此,您的腳本可能會嘗試使用使用者/模式名稱mypass
和密碼連接到具有服務名稱的 Oracle 數據庫mypass
,遇到錯誤 ORA-12154,然後由於某種原因未能檢索到相應的錯誤消息文本。但是 ORA-12154 是什麼意思?Google來救援!
錯誤消息的完整英文文本似乎是:
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 錯誤消息。您覺得這有什麼問題嗎?”哦,既然您已經公開將密碼發佈到您的數據庫,您可能真的想現在就更改它。