質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

解決済

1回答

860閲覧

"/usr/share/postgres.bki"は存在しません。”エラーの回避方法について

makochin

総合スコア0

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2021/04/18 00:46

前提・実現したいこと

LinuxにPosgresqlを構築したのですが、
アプリがDBに接続できないため、
動作しなくなってしまいました。
そこで、Posgresqlの複数のバージョンがをインストールしてしまい、
削除しようとすると下記のエラーが表示されてしまい、
前に進めません。
アドバイスをご教示いただけると幸いです。
よろしくお願いします。

発生している問題・エラーメッセージ

実施コマンド  initdb --encoding=utf8 --locale=C -D /var/pgsql/datanew
エラー内容 The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.

initdb: file "/usr/share/postgres.bki" does not exist
This might mean you have a corrupted installation or identified
the wrong directory with the invocation option -L.

該当のソースコード

試したこと

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hoshi-takanori

2021/04/18 01:10

initdb は PostgreSQL データベースを新規作成するコマンドのはずですが、削除したいんですよね…? とりあえず Linux の動いてる環境やディストリビューション、PostgreSQL を入れた方法などを書きましょう。
makochin

2021/04/18 01:35 編集

ご返信ありがとうございます。 また、曖昧な質問内容で大変、申し訳ありません。 仰る通り、削除でなく、データベースを新規作成したいのが目的です。 ・OS:CentOS7.0.1406 ・ディストリビューション:redhat ・PostgreSQLを入れた方法:zipファイルをダウンロードして、 ソースを展開してコンパイル後、 インストール (※アプリケーションのPostgreSQLの構築方法の マニュアルに沿って構築しました。) よろしくお願いします。
hoshi-takanori

2021/04/18 01:48

CentOS 7.0 はすでにサポート期限切れのような気が…。はさておき、CentOS 用のパッケージではなくわざわざソースから入れる必要があるってことですね。その場合、PostgreSQL のバージョンや、具体的なコンパイル手順も書いてくれないと何も分かりません。
makochin

2021/04/18 03:28

ご返信ありがとうございます。 お恥ずかしながら、Linux、Posgre初心者になり、 前任者からのマニュアルを元に実施しているため、 ソースから入れるの必要性をよく理解できておりません。 現行 :(PostgreSQL 9.2.23)が稼働 ↓ 新バージョンアップ :(PostgreSQL 9.6.21) コンパイル手順は下記の通り実施していますが、 手順の説明になっていないようであればご教示ください。 ※アプリケーションの構築マニュアル通りに沿って構築しました。 ただ、マニュアルは新規構築でのマニュアルになってます。 現行のバージョンと新バージョンが存在する形になっています。 ------------------------------------------------------------------------------------------------ ①.パッケージソースの展開 suコマンドにて、rootユーザーにスイッチ。 [guest@xxxxxx guest]# su - Password: ダウンロードサイトからダウンロードしたPostgreSQLのパッケージソースを展開。 ここでは、guestユーザーのホームディレクトリにあるものとします。 [root@xxxxxx guest]# cd /usr/local/src [root@xxxxxx src]# tar zxvf /home/guest/postgresql-9.6.21.tar.gz 展開が完了すると、/usr/local/srcディレクトリ下に「postgresql-9.6.21」というディレクトリが作成。 ②.パッケージのインストール インストールするサーバー環境による構成を行いました。 [root@xxxxxx guest]# cd postgresql-9.6.21 [root@xxxxxx postgresql-9.6.21]# ./configure  ・(中略) configure: using LDFLAGS= -Wl,--as-needed configure: creating ./config.status config.status: creating GNUmakefile config.status: creating src/Makefile.global config.status: creating src/include/pg_config.h config.status: creating src/include/pg_config_ext.h config.status: creating src/interfaces/ecpg/include/ecpg_config.h config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c config.status: linking src/backend/port/sysv_sema.c to src/backend/port/pg_sema.c config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h config.status: linking src/include/port/linux.h to src/include/pg_config_os.h config.status: linking src/makefiles/Makefile.linux to src/Makefile.port [root@xxxxxx postgresql-9.6.21]# ③パッケージのコンパイル ここではGNU makeコマンドを使用してコンパイルしました。 [root@xxxxxx postgresql-9.6.21]# gmake  ・(中略) gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src/test/regress' から出ます gmake -C test/perl all gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src/test/perl' に入ります gmake[2]: `all' に対して行うべき事はありません. gmake[2]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src/test/perl' から出ます gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src' から出ます gmake -C config all gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/config' に入ります gmake[1]: `all' に対して行うべき事はありません. gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/config' から出ます All of PostgreSQL successfully made. Ready to install. [root@xxxxxx postgresql-9.6.21]# ④コンパイルが完了後、インストールを行う前に、PostgreSQLが正しく動作するかを 検証するためにリグレッションテストを行いました。 リグレッションテストは、rootユーザーでは実行することができないとのことで、 rootユーザー以外のユーザーにスイッチしました。(ここでは「guest」ユーザーで実行。) [root@xxxxxx postgresql-9.6.21]# su guest [guest@xxxxxx postgresql-9.6.21]# gmake check  ・(中略) sequence ... ok polymorphism ... ok rowtypes ... ok returning ... ok largeobject ... ok with ... ok xml ... ok test event_trigger ... ok test stats ... ok ============== shutting down postmaster ============== ============== removing temporary instance ============== ======================= All 167 tests passed. ======================= gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src/test/regress' から出ます [guest@xxxxxx postgresql-9.6.21]# ⑤"All 167 tests passed."が表示されればテストが正しく完了とのことで インストールを実施。 ※ インストールは、rootユーザーで行います。 (※先ほどスイッチした「guest」ユーザーから戻しました。) [guest@xxxxxx postgresql-9.6.21]# exit [root@xxxxxx postgresql-9.6.21]# gmake install   ・(中略)  /usr/bin/install -c -m 644 ./nls-global.mk '/usr/local/pgsql/lib/pgxs/src/nls-global.mk' gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src' から出ます gmake -C config install gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/config' に入ります /bin/mkdir -p '/usr/local/pgsql/lib/pgxs/config' /usr/bin/install -c -m 755 ./install-sh '/usr/local/pgsql/lib/pgxs/config/install-sh' /usr/bin/install -c -m 755 ./missing '/usr/local/pgsql/lib/pgxs/config/missing' gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/config' から出ます PostgreSQL installation complete. [root@xxxxxx postgresql-9.6.21]# ⑥"PostgreSQL installation complete."が表示されればインストールは完了とのことです。 表示まで確認しました。 ⑦アプケーションのファイル内検索オプションを利用するために、 PostgreSQLの"dblink"機能をコンパイルします。引き続き、rootユーザーで実行しました。 [root@xxxxxx postgresql-9.6.21]# cd contrib/dblink [root@xxxxxx dblink]# gmake ・(中略) gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src/interfaces/libpq' に入ります gmake[1]: `all' に対して行うべき事はありません. gmake[1]: ディレクトリ `/usr/local/src/postgresql-9.6.21/src/interfaces/libpq' から出ます gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -fPIC -I../../src/interfaces/libpq -I. -I. -I../../src/include -D_GNU_SOURCE -c -o dblink.o dblink.c gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -fPIC -shared -o dblink.so dblink.o -L../../src/port -L../../src/common -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql/lib',--enable-new-dtags -L../../src/interfaces/libpq -lpq [root@xxxxxx dblink]# ⑧"dblink"機能のコンパイル完了後、インストールを行いました。 [root@xxxxxx dblink]# gmake install [root@xxxxxx dblink]# cd ../.. [root@xxxxxx postgresql-9.6.21]# ⑨.データベース管理ユーザーの作成しました 次に、PostgreSQLデータベースの管理ユーザー"postgres"(以下、"postgres"ユーザー)を作成しました。 [root@xxxxxx postgresql-9.6.21]# useradd postgres [root@xxxxxx postgresql-9.6.21]# passwd postgres Password: ------------------------------------------------------------------------------------------------ 今さらですが、 アプリケーションのDB構築マニュアルの 冒頭で ”既に別バージョンのPostgreSQLがインストールされていると、予期しない結果となり、 アプリケーションが正しく稼動しない場合がありますので、、、、”と 記載されていました。 複数のバージョンが存在するのが原因ですかね?
hoshi-takanori

2021/04/18 03:49

えっと、もしかしてそれは現在稼働中のいわゆる本番サーバーだったりしますか? だとしたらそのシステムに詳しい人に確認すべきかと…。
makochin

2021/04/18 05:45

こちらもお恥ずかしながら、本番サーバーだったりします。 承知しました。前任者に再度、確認してみます。 ありがとうございました。
guest

回答1

0

自己解決

PATHを変更したら回避できました。

投稿2021/04/18 05:48

makochin

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問