投稿日:2003年09月25日 作成鷹の巣

No.12536 PostgreSQLで、psql:relocation error: psql: undefined symbol: PQgetsslのエラーが出るのは何故。



PostgreSQLで、psql:relocation error: psql: undefined symbol: PQgetsslのエラーが出るのは何故。

No.12536 投稿時間:2003年09月25日(Thu) 09:13 投稿者名:オレンジ URL:

RedHatLinux9にPostgreSQLを入れているのですが、
ポスグレ専用のユーザー"postgres"で
pg_ctl startで起動し、
psql mydb(自分で作ったDB)とすると、
psql:relocation error: psql: undefined symbol: PQgetssl
というエラーが出ます。
一度ログアウトして、もう一度ログインするとうまくいきます。
これはなぜでしょうか?


DB サーバへのアクセスは SSL 経由ですか?

No.12542 投稿時間:2003年09月25日(Thu) 21:20 投稿者名:帯鯖 URL:

帯鯖@名古屋です。

実証していないので推測に過ぎませんが。

1. DB サーバへの接続は、敢えて SSL 経由にしているのでしょうか?

SSL 経由にする必要がなければ、設定ファイルの SSL の項目にコメントを必ず入れます。
# ssl = false

SSL 経由にされているのであれば、症例から判断すると、SSL 側でのキーの受渡しで失敗している可能性が高いと思います。

まずは、原因特定でしょうか。

参考
http://www.hizlab.net/app/pgsec.html

> RedHatLinux9にPostgreSQLを入れているのですが、
> ポスグレ専用のユーザー"postgres"で
> pg_ctl startで起動し、
> psql mydb(自分で作ったDB)とすると、
> psql:relocation error: psql: undefined symbol: PQgetssl
> というエラーが出ます。
> 一度ログアウトして、もう一度ログインするとうまくいきます。
> これはなぜでしょうか?


sslではありません

No.12547 投稿時間:2003年09月26日(Fri) 09:12 投稿者名:オレンジ URL:

お返事ありがとうございます。

> 1. DB サーバへの接続は、敢えて SSL 経由にしているのでしょうか?

いえ、postgresql.confを見てみましたが
#ssl = false
と、なっています。
他にもsslの設定する箇所ってありましたでしょうか?

それと、エラーが出てから、
[postgres@test /]$ su postgres
をやりと、パスワードを入力しろと出るので、パスワードを入れて
もう一度、psql testdbとやるとエラーが出ないでうまくいきます。
ログインしなおせばうまくいくのですが・・


sslではありません

No.12548 投稿時間:2003年09月26日(Fri) 11:16 投稿者名:ハル URL:

私はMySQLな人なので、PostgreSQLは触った事すらありません。
ですので推測なのですが・・・・^^;

> psql:relocation error: psql: undefined symbol: PQgetssl
で検索をかけると
LD_LIBRARY_PATHを設定していないと出るとか書いてあります。
Ref. http://archives.postgresql.org/pgsql-general/2002-10/msg00385.php

postgresユーザの環境変数が設定されていないとかありませんか?

export PATH=$PATH:$HOME=/bin:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

postgresホームディレクトリのbash_profileかな? ^^;


直してみましたがエラーがでます。

No.12550 投稿時間:2003年09月26日(Fri) 11:43 投稿者名:オレンジ URL:

> postgresユーザの環境変数が設定されていないとかありませんか?

export PATH=$PATH:$HOME=/bin:/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"

MANPATHの指定が抜けいていたので↑のように直しましたが、
同じようにエラーが出てしまいました。。


インストール時のリンク生成時のエラーか、モジュールが古い可能性か。

No.12574 投稿時間:2003年09月28日(Sun) 00:57 投稿者名:帯鯖 URL:

帯鯖@名古屋です。

我が家の postgres ユーザの Postgresql に相当する環境変数は、下記のみです。
これで、問題なく動いておりますが。

PGLIB=/usr/lib/pgsql
PGDATA=/var/lib/pgsql/data
export PGLIB PGDATA


--------------

http://openacs.org/forums/message-view?message_id=94097
上記ページに、"linker" error と書かれています。
スクリプトや設定に起因するものでなく、コンパイルとリンク生成時などのバイナリファイルが原因と推測されています。

PQgetssl が関わる libpq.so への環境変数設定はありません。
よって、インストール時に不測要因が混在した可能性が高いと思います。

SSL 非対応バージョンから対応バージョンへのアップデートであれば、
単に、SSL 非対応モジュール libpq.so がそのまま残ってしまっただけかもしれません。


# Postgresql の本家および日本分家のサイトにも、的を得た回答はありませんね。。。


> > postgresユーザの環境変数が設定されていないとかありませんか?
>
> export PATH=$PATH:$HOME=/bin:/usr/local/pgsql/bin
> export POSTGRES_HOME=/usr/local/pgsql
> export PGLIB=$POSTGRES_HOME/lib
> export PGDATA=$POSTGRES_HOME/data
> export MANPATH="$MANPATH":POSTGRES_HOME/man
> export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
>
> MANPATHの指定が抜けいていたので↑のように直しましたが、
> 同じようにエラーが出てしまいました。。


|目次|掲示板|過去ログ目次|▲頁先頭|