Finkを使用してosxにpostgresqlをインストールしました。 psqlを起動しようとすると、次のようになります。
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
私はこれまでpostgresqlをインストールしたことがないので、どこを見ればよいのかよくわかりません。何か提案はありますか?
これは、PostgreSQLデーモンが実行されていないことを意味します。デーモンがインストールされている場所を見つける必要があります。デフォルトでは、/ usr/local/pgsqlにインストールする必要があります。そこにある場合は、/ usr/local/pgsql/dataディレクトリがあるかどうかを調べます。実行されていない場合:
/ usr/local/pgsql/bin/initdb -D/usr/local/pgsql/data
次に、成功した場合は、
/ usr/local/pgsql/bin/pg_ctl -D/usr/local/pgsql/data start
そして、それはあなたを正しい軌道に乗せるはずです。
私には、現在のユーザーアカウントでPostgresSQLを実行しようとしているようです。 PostgreSQLのfink-propertiesはわかりませんが、関連するデーモンは専用のユーザーアカウントで実行されることになっています(たとえば、postgres )。
まず、PostgresSQLがデータを格納し、構成ファイルが存在するデータディレクトリを特定します。エラーメッセージには、「/ Library/PostgreSQL/8.4/data」の可能性があると表示されているようです。このディレクトリは、すでにpostgres-userに属し、rwx-privilegesを持っている必要があります。 Finkはすでに作成していると思うので、インストールログを確認してください。
このディレクトリの内部を確認してください(コンソールユーザーに対して十分な権限がない可能性があるため、su/Sudoが必要になる場合があります)。いくつかのファイルがある場合、例えば。 postgresql.conf、pg_ *の束、およびその他のいくつかのファイルは、すべてpostgresに属しており、データディレクトリは問題ないようです。それ以外の場合は、次を呼び出します(バイナリパスpostgres-ユーザーとデータパスをシステム値に置き換えます。その他のオプションについては、man initdbを参照してください):
Sudo -u postgres /usr/local/pgsql/bin/initdb -D /Library/PostgreSQL/8.4/data
ここでは、postgresユーザーとしてSudoにとって重要です。これは、postgresデーモンが実行されるユーザーアカウントには、十分なアクセス権が必要であるためです。
また、sudoでデーモンを開始する必要があります(これは後でlauchctl-entryなどで処理する必要があります)。
Sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /Library/PostgreSQL/8.4/data
データディレクトリはいつでも再作成できますが、postgresの実行中にバックアップを作成し、上書きしないようにしてください。
Postgresqlが実行され、リッスンしていることを確認できます。
lsof -i |grep LISTEN
サーバーが起動しておらず、おそらく実行されていないように聞こえます initdb
ただし、さらに問題が発生した場合は、Mac OS Xにpostgresqlをインストールする最も簡単な(そしてpostgresqlが推奨する)方法は、 EnterpriseDB が提供するGUIインストーラーを使用することです。複数のバージョンのインストールも非常にうまく処理します。