postgresqlをインストールします。initdbが利用できないのはなぜですか?


15

これらの指示に従っていますが、ステップ17.2にしか到達できません。

経由でpostgresqlを正常にインストールしたにもかかわらず

sudo apt-get install postgresql

コマンド、実行時

initdb -D /usr/local/pgsql/data

Ubuntuは、「initdb」がインストールされていないことを教えてくれます。このコマンドは次の方法でインストールされます

sudo apt-get install postgresql

どうしたの?postgres-xcをインストールすることでinitdbを利用可能にできますが、postgres-xcは奇妙なサードパーティのごみだと思うので、説明には詳しくありません。何か案は?

回答:


14

initdbインストール中に作成されるpostgresユーザーアカウントで実行することを目的としています。postgresqlをインストールしたら、次のことができます。

sudo su - postgres

その後、実行できるはずinitdbです。


4
/usr/share/doc/postgresql-common/README.Debian.gzからの引用:Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr

3
postgresユーザーに切り替えた後でも、このエラーが表示されます
-Cogwheel

これは、Postgres 9.6を使用するUbuntu Server 14では機能しません。
須藤

ので、それは、動作しませんinitdbです/usr/lib/postgresql/X.X/bin/
李東

27

initdb下にあり/usr/lib/postgresql/x.y/bin/ます。/usr/share/doc/postgresql-common/README.Debian.gzDebianおよびUbuntuでのセットアップの詳細についても参照してください。


これは本当に受け入れられた答えであるべきです。 initdb基礎となるコマンドですが、DebianおよびUbuntuユーザーはpg_createclusterとそれに関連するコマンドスイートを使用する必要があります。さらに、あなたは正常にする必要はありませんinitdbOR pg_createclusterapt-get install postgresqlの標準がすでにインストールするために、サーバーとデフォルトの/テンプレートデータベースと、デフォルトのクラスタを作成するため。上記のREADME Peterが読むには時間をかける価値があります。
cdaddr

2
@cdaddrいいえ、通常postgresをインストールした後は必要ありません。それでも、クラスタをすばやく再作成する必要があり、postgresの再インストールに煩わされたくない場合や、標準以外の場所で新しいデータベースを初期化する必要がある場合は、これが役立つ場合があります。はい、これは素晴らしい答えです。
エラティエル

1
動作します。そして、これにより、どのバージョンを使用しているかを確認できるので、最高です。
須藤

、チュートリアルがそう言うので、私たちはinitdbを探しているpostgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdbユーザー実行可能ファイルとしてインストールされません。は/usr/lib/postgresql/X.X/bin/常にバージョンに依存するため、のみにインストールされます。initdbその特定のディレクトリからのみ実行できます。

他の回答で述べたように、postgresをインストールすると、デフォルトのディレクトリが作成され、制限されたパーティションにある場合があります。ユーザーはこれを変更したい場合がありますが、他の手順も必要です。こちらをご覧ください


-2

ルートから次の手順を実行します1.passwd postgresパスワード、2.su postgres 3.psql 4.「CREATE USER SAM;」などのユーザー名のユーザーを作成します。5.データベースSAMを作成します。ユーザーからログアウト6.psqlを入力します


この回答は質問に直接対処するものではありません。
cdaddr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.