![このエラーはどういう意味ですか? AH01215:Schema.myuser@mydb。パスワード.mypass [閉じる]](https://linux33.com/image/12864/%E3%81%93%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AF%E3%81%A9%E3%81%86%E3%81%84%E3%81%86%E6%84%8F%E5%91%B3%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20AH01215%EF%BC%9ASchema.myuser%40mydb%E3%80%82%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89.mypass%20%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
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はどういう意味ですか? Googleが救出します!
エラーメッセージの完全な英語のテキストは次のとおりです。
ORA-12154: TNS:could not resolve the connect identifier specified
スクリプトが使用するデータベースクライアント/ドライバがデータベースにアクセスする方法がわからないようですmydb
。
データベース接続用のネットワーク接続パラメータを定義するファイルがある場合は、スクリプトで使用されているデータベースクライアント/ドライバが実際にファイルを見つけることができるように、スクリプトが正しいおよびその他の必要なtnsnames.ora
Oracle固有ORACLE_HOME
の環境変数を取得していることを確認する必要があります。tnsnames.ora
。次に、ファイルに記載されているすべてのホスト名/ IPアドレス/ポートが正しいこと、およびすべてのホスト名を解決できることを確認してください。
CGIスクリプトがchroot環境で実行されている場合、/etc/resolv.conf
DNSリゾルバーライブラリにアクセスできないかアクセスできないため、ホスト名を解決できません。
または、Oracleドライバ/クライアントが他のものを使用するように構成されている場合命名方法(Oracleの技術用語)データベース接続パラメータを見つけるには、どの方法が使用され、データベースサービス名に対して有効な結果が生成されたかを確認する必要がありますmydb
。データベース管理者に連絡する必要があります。 「私のクライアントが設定されました。このようにORA-12154: エラー・メッセージが表示されます。これらのうちの1つでも問題があると思いますか? 」
ああ、そして今パスワードをデータベースに公開しているので、実際にパスワードを変更したいかもしれません。
答え2
私の問題を解決するために私がしなければならなかったのは、Oracle構成ファイルのコードを変更して、/etc/profile.d/oracle.sh
誰もが実行できるようにすることでした。特定のグループのユーザーに対してのみ実行されるようにコーディングされています。
皆さんのコメントありがとうございます!