0

Herokuでデプロイできるように、postgresqlで新しいアプリをセットアップしようとしています。ただし、「rails server」を使用してアプリを実行すると、ようこそRails画面で次のエラーが発生します。

PG::エラー

サーバーに接続できませんでした:アクセスが拒否されましたサーバーはローカルで実行されており、Unixドメインソケット "/var/pgsql_socket/.s.PGSQL.5432"で接続を受け入れていますか?

これは、ここで説明されているのと同じ問題であると確信しています。

OSX10.7Lionにアップグレードした後のPostgresqlの修復

しかし、JohnWangによる修正は機能しません。

'export PATH = / usr / local / bin:$ PATH'を.bash_profile、.bashrc、および.zshrcに追加しようとしましたが、いずれも結果を変更しません。どのpsqlを呼び出すと、常に/ usr / bin/psqlが返されます。

私はここで何が間違っているのですか?どんな助けでも大歓迎です!

編集

/ usr / local / bin / psqlを実行すると同じエラーが発生し、echo$PATHを実行すると次のようになります。

/opt/local/bin:/opt/local/sbin:/Users/dave/.rvm/gems/ruby-1.9.3-p194/bin:/Users/dave/.rvm/gems/ruby-1.9.3- p194 @ global / bin:/Users/dave/.rvm/rubies/ruby-1.9.3-p194/bin:/Users/dave/.rvm/bin:/usr/bin:/bin:/usr/sbin:/ sbin:/ usr / local / bin:/ usr / X11 / bin:/ Users / dave / .rvm / bin

4

1 に答える 1

2

ローカルにインストールされたpsqlを直接実行するとどうなりますか?

/usr/local/bin/psql ...

それが機能する場合、それはあなたが変更する必要があるパスです。ターミナルでエクスポートを実行してみてくださいwhich psql。それでも正しいpsqlが選択されない場合は、エクスポートが機能することを確認してください

echo $PATH

更新する必要のある.xxrcファイルがわかりません。Macを手に入れることができませんでしたが、少なくともコマンドが機能することはわかっています。

ああ-私はPostgreSQLのいくつかの異なるバージョンを保持していて、いくつかのエイリアスを設定しておくと便利だと思います。

alias psql90='/usr/local/pgsql90/bin/psql -p 5490'
alias psql84='/usr/local/pgsql84/bin/psql -p 5484'
alias pg_dump90=...

あなた$PATHは「:」で区切られたチェックするディレクトリの単なるリストです。それは/opt/local/binむしろ始まります、/usr/local/binそしてあなたがさらに進んで見るならば、あなたは/usr/bin前に来るのを見るでしょう/usr/local/bin。つまり、次の2つのことを行う必要があります。

  1. 実際に必要なpsqlを見つけてください
  2. パスを編集できることを確認してください

まず、postgresql.confファイルを見つけて、実行しているポートを確認します。関心のある項目は、、、およびの3listen_addressesportですunix_socket_directory。次に、そこにソケットがあるかどうかを確認します。

ls -a <your unix_socket_directory>

「.s.PGSQL.5432」のような「ファイル」が表示されます。ここで、5432は設定ファイルのポート番号です。そのようなファイルがない場合、それは実行されておらず、実行する時が来ました。Appleの既存の使用法と一致する場合は、構成ファイルのポート番号を変更する必要がある場合があります。

次に、どのpsqlインストールが存在するかを見つけます

find /usr -type f -name psql
find /opt -type f -name psql

どれが必要かを試してみてください。おそらく、-versionを追加してください。

次に、PATHの編集について見てみましょう。とにかく設定ファイルにいくつかの変更を加える必要があるので、その設定がどこにあるかを確認できるかどうか見てみましょう。

grep -l 'local/bin' ~/.*rc

これにより、local /binを含むファイル名が一覧表示されます。PATHを編集しているかどうかを確認してください。

于 2012-07-05T17:58:35.203 に答える