PostgreSQL:データベースクラスターの初期化に失敗しました


15

両方C:\PostgreSQLと完全なアクセス権と管理者権限をC:\PostgreSQL\data持つpostgresユーザーがいます。

postgresユーザーからpostgresql-9.1.2-1-windows.exeをadminとして実行しました。目標C:\PostgreSQL

試行するたびに、「データベースクラスターの初期化に失敗しました」というメッセージが表示されます。

ご質問

  • Windowsサービスでなくてもすべて実行できますか?
  • Windowsサービスとしてインストールする回避策はありますか?

GeoDjangoで動作するようにPostGISをセットアップしようとしています。

PostGISを手動でインストールできました。PostgreSQLの初心者であり、私はこれらすべてに自信の危機に直面しています。MySQLからPostgreSQLに初めて来ました。


C:\ Users \ Larry \ AppData \ Local \ Temp \ install-postgresql.logからの関連するログ出力:

WScript.Network initialized...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C: (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can read the path C:\PostgreSQL\data (using icacls) to Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called IsVistaOrNewer()...
    'winmgmts' object initialized...
    Version:6.1
    MajorVersion:6
Ensuring we can write to the data directory (using icacls) to  Larry:
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Failed to ensure the data directory is accessible (C:\PostgreSQL\data)
    Executing batch file 'radA3CF7.bat'...
    Output file does not exists...
Called Die(Failed to initialise the database cluster with initdb)...
Failed to initialise the database cluster with initdb

提案?


インストールログ(ディスク上のどこか、おそらく%TEMP%にあるはずです)を参照してください
-filiprem

関連するログ出力をご覧ください。
ラリーアイテル

postgres Windowsユーザーには、C:\ PostgreSQL \ dataに対する完全な読み取りおよび書き込み権限がありますか?
a_horse_with_no_name

はい、および他の場所での提案に従って、そのディレクトリに対するユーザーの変更権限を付与しました。
ラリーアイテル

@LarryEitel:しかし、「データディレクトリにアクセスできることを確認できませんでした(C:\ PostgreSQL \ data)」は、そうでないことを示しているようです。
a_horse_with_no_name

回答:


17

Windows 7に9.1.4をインストールするときに同じ問題が発生しましたオンラインで機能するソリューションを見つけることができました

私が従った手順は次のとおりです。

  1. PostgreSQLをアンインストールします
  2. postgresユーザーがまだ存在する場合は削除します。

    net user postgres /delete
  3. 覚えやすいパスワードでpostgresユーザーを作成します

    net user /add postgres <password>
  4. postgresユーザーを管理者グループに追加します

    net localgroup administrators postgres /add
  5. postgresユーザーをPower Usersグループに追加します

    net localgroup "power users" postgres /add
  6. postgresユーザーとしてコマンドウィンドウを実行する

    runas /user:postgres cmd.exe
  7. コマンドウィンドウ内からインストールファイルを実行します。

    C:\Download\postgresql-9.1.4-1-windows.exe

    これにより、インストールが正常に実行されます。

  8. 管理者グループからpostgresユーザーを削除します。

    net localgroup administrators postgres /delete

フィードバックありがとうございます。残念ながら、私はこのプロジェクトをMongodbに移行しました。私はあなたの提案を確認する立場にありません。
ラリーアイテル

私は解決策が私のために働いたことを確認したい。セットアップ:Postgres 9.1 64ビットおよびPostGIS 2.0.1 x64
Chris

1
これは、サービスとして実行されているPostgreSQLの再インストールに関する既知の問題であり、この回答が対処する状況に個人的に遭遇しました。インストーラーは、削除またはアップグレード時にアカウントを残しますが、2回目のインストールでは考慮されません。結果として生じるインストール間の資格情報の不一致は大混乱を引き起こします。最も一般的な答えは、イムランが与えるものです。アンインストールし、問題のあるアカウントを削除してから再インストールします。
エイブリーペイン

@AveryPayne:あるいは、postgresサービスアカウントの正しいパスワードを覚えておいてください。既にインストールされているシステムにPostgresをたくさんインストールしましたが、既存のサービスアカウントに問題はありませんでした。ただし、インストーラーの文言は改善された可能性があります(9.2ではPostgresは明示的なアカウントを使用しなくなりました)
a_horse_with_no_name

ステップ4では、administratorsロケールに依存することに注意してください。たとえば、PT-BRではですadministradores。そして、ステップ5では"power users"です"usuários avançados"
-GuiRitter

1

私の場合(Windowsの%temp%フォルダーのpostgresql.logファイルから見たように)、c:\ windows \ system32フォルダーへのパスが指定されていてもインストーラーがdoskey.exeを見つけられなかったためですウィンドウの環境変数パス。
そこで、コマンドプロンプトを開きset PATH=%PATH%;c:\windows\system32、コマンドプロンプト自体からインストーラーを入力して実行しました。動いた!:)


1

上記のどれも私にとってはうまくいきませんでした。postgresは使用しませんでした。

だから私はすべてを削除/アンインストールしました。管理者としてcmdを実行しました。

次に、コマンドラインからインストーラを実行し(管理者として)、データディレクトリの完全に新しい場所を選択しました。

半日のジグリーポケリーの後、postgresを正常に再インストールしました。


1

9.2.4をインストールしようとしたときに、同じエラーメッセージが表示されました。私の問題は、Win2k8サーバーのパスの一部に%SYSTEMROOT%\ system32があったとしても、C:\ Windows \ system32にプログラムが「表示」されないためです。インストーラーは、initルーチン中にicacls.exeを頻繁に使用します。私の道が台無しになったので、インストーラーは爆撃しました。

SYSTEMのPath環境変数にC:\ Windows \ system32を明示的に追加し、管理者としてインストーラーを再実行すると、すべてが正常に機能しました。


0

この問題は、フォルダーの書き込み許可に関係しています。たとえば、フォルダ/データをPostgreSQL \ 9.2に作成し、ユーザーに完全な権限を付与します。再インストールしてください。

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