OSX Mavericksへの最近のアップグレードは、私のRails app。
データベースからフェッチしようとすると、サーバーは次のエラーを返します。
PG::ConnectionBad (could not connect to server: Connection refused
Is the server running on Host "localhost" (::1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on Host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
could not connect to server: Connection refused
Is the server running on Host "localhost" (fe80::1) and accepting
TCP/IP connections on port 5432?
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"?
インターネットで利用できる多くのソリューションを試しました。 pg gemを再インストールして、database.ymlにHost:localhostを設定します。 /usr/local/var/postgres/pg_hba.confファイルには次のように書かれています:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
Host all all 127.0.0.1/32 trust
# IPv6 local connections:
Host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication RyanKing trust
#Host replication RyanKing 127.0.0.1/32 trust
#Host replication RyanKing ::1/128 trust
どのpsqlが返します:/usr/local/bin/psql
これに関する解決策はありますか?いくつかの解決策は、新しいバージョンのpostgresがMavericksで追加されるため、$ PATHを以前のpostgresインストールに変更する必要があることを示唆しています。それがどこにあるのかを見つけるにはどうすればよいですか? homebrewでインストールされた可能性は十分にありますが、確信はありません。
homebrew経由でインストールした場合は、これを試してください(brew info postgresql
)
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
リロードされます。 Postgress.appのデフォルトではデータベースが見つかりません(PGDATA
ディレクトリを指す必要があり、バージョンの競合が発生する可能性があります(9.2とpostgress.appの実行が9.3の場合、ダンプ/復元が正常に行われます。
コメントから引き出します。
わかりましたので、9.2.3がインストールされているように見えますが、私はこれをします。
postgres -D /usr/local/var/postgres
その後、それらをすべてバックアップします。 pg_dumpall > ~/mydatabases.dump
ポストグレスを殺す
brew reinstall postgresql
、ただし、これは9.2.3
から9.3.1
。次に、すべてのデータベースを再インポートしますpsql < mydatabaes.dump
。 launchctlスタッフのアンロード/ロードの指示に従うようにしてください。その時点でうまくいくはずです。 postgress.appを使用してデータベースをそのアプリにインポートすることもできますが、とにかくデータベースをバックアップ/ダンプする必要があります。
tl; dr Postgresアプリケーションを起動するだけです!
FWIW、Mavericksをアップグレードした後も、まったく同じ経験をしました:
それから私は戻って:
そしてすべてがうまくいきました!
それから
同じ問題がありました。アップグレードによってプロセスが強制終了され、postgres pidファイルがそこに残っていることがわかりました。だから、私のように頭がおかしくなって、OSXをアップグレードするために再起動をクリックしないでください。アップグレードの前にすべてを完全にシャットダウンしてください。
最も簡単な解決策は、 http://postgresapp.com を使用することです
Homebrew経由でインストールするには、必ずbrew update
homebrewを再び動作させる
前述のように、これを.bash_profileに追加してみてください here :
export PGHOST=localhost
最近、10.9.4にアップグレードしたときにこの問題が発生しました。
1日の試行錯誤の後、私は問題を修正したJohoによるこの投稿を見つけました。 https://Gist.github.com/joho/373574
インストールバージョンに合わせてバージョンを変更してください。私のように複数のバージョンがインストールされている場合、cd/usr/local/Cellar/postgresqlにアクセスすると、どのバージョンかを確認できます。次に、インストールに合わせてバージョン番号を変更します。
要約すれば:
$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
$ mv /usr/local/var/postgres /usr/local/var/postgres9.2
$ brew update
$ brew upgrade postgresql
$ initdb /usr/local/var/postgres -E utf8
$ pg_upgrade -b /usr/local/Cellar/postgresql/9.2.1/bin -B /usr/local/Cellar/postgresql/9.3.4/bin -d /usr/local/var/postgres9.2 -D /usr/local/var/postgres
$ cp /usr/local/Cellar/postgresql/9.3.4/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Rubyを使用している場合:
$ gem pristine pg
これがお役に立てば幸いです!それは私のためにした
.dmg経由でインストールする場合は、Postgresインストーラー(私の場合はpostgresql-9.1.3-1-osx.dmg)から再インストールできます。再起動も必要になる場合があります。私は昨日これをしました-私の実際のデータベースは削除されず、すべてが今は大丈夫です。
Snow LeopardからMountain Lionにも同様のことが起こりました。
OS X Mavericks
にPostgreSQL
を使用してhomebrew
をインストールした後、これはうまくいきました:
Sudo ARCHFLAGS="-Arch x86_64" gem install pg
そうでない場合、このコマンドは、OSをOS X Yosemite
およびOS X El Capitan
にアップグレードした後に再び発生した場合の問題を修正しました。
Sudo PATH=$PATH:/Applications/Postgres.app/Contents/Versions/[Version-Number]/bin gem install pg -v [gem version]
また、Xcode
のXcode
とcommand line tools
を更新したことを確認してください。
Homebrewを使用してアップグレードした場合、問題はおそらくデータベース形式です。 postgresコマンドを直接実行して確認します。
$ postgres
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 9.2, which is not compatible with this version 9.3.4.
私の開発データベースはすべてシードデータであるため、それらを吹き飛ばしただけです。
$ rm -rf /usr/local/var/postgres
$ initdb
もちろん、これはすべてを強制終了するため、rake db:createが成功する前にロールを再作成する必要があります。
$ createuser -s MyApp
ロール名がわからない場合は、rake db:createを実行するだけです。教えてくれます。
Yosemiteからのアップグレード後にこのページを見つけた場合は、問題を解決するために別のアプローチが必要です。基本的に、Yosemiteへのアップグレードはいくつかのファイルを破壊します。問題と解決策を見つけることができます here !.