web-dev-qa-db-ja.com

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

どちらも C:\PostgreSQLおよびC:\PostgreSQL\dataフルアクセスと管理者権限を持つpostgresユーザーがいます。

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

私が試すすべての方法で、「データベースクラスターの初期化に失敗しました」と表示されます。

ご質問

  • Windowsサービスなしですべてを実行しても問題ありませんか?
  • Windowsサービスとしてインストールするための回避策はありますか?

PostGISをGeoDjangoで動作するように設定しようとしています。

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

提案?

16
Larry Eitel

Windows 7に9.1.4をインストールするときに同じ問題が発生しました。オンラインで 解決策を見つけました

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

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

    Net User postgres /delete
    
  3. 覚えやすいパスワードでpostgresユーザーを作成する

    Net User /add postgres <password>
    
  4. PostgresユーザーをAdministratorsグループに追加する

    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
    
19
Imraan

私の場合(Windowsの%temp%フォルダーにあるpostgresql.logファイルからわかるように)、c:\ windows\system32フォルダーへのパスがウィンドウの環境変数パス。
それで、コマンドプロンプトを開き、set PATH=%PATH%;c:\windows\system32とコマンドプロンプト自体からインストーラーを実行しました。動いた! :)

1
Nav

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

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

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

私は今、jiggery pokeryの半日の後に、postgresを正常に再インストールしました。

1
NimChimpsky

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

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

1
Mark

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

0
user37408