OS X Serverを使用してMacMini ServerをLion ServerからMountain Lionにアップグレードしました。昨年Lion Serverを最初にインストールしたときと同じPostgreSQLの問題を抱えています。
あらゆる種類のPostgreSQLターミナルコマンドを実行しようとすると、多くの人が長年にわたって得てきた次の悪名高いエラーメッセージが表示されます。
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
エラーが発生したときに、_postgresのパスワードを変更しようとしました。いくつかのコマンドを試しましたが、同じエラーが発生しました。サーバーを再起動しましたが、運はありません。/var/pgsql_socketを見るためにルートとしてログインしましたが、フォルダーは空です。フォルダ/ var/pgsql_socket_altも空です。
これについてオンラインで確認しました。ただし、Stack Overflowを含め、私が読んだほぼすべてのソリューションは、PostgreSQLの削除と再インストールを提案しています。私は知りませんが、Server AppのいくつかのオプションがPostgreSQLを使用しているため、これはもっともらしいオプションとは思えません。 Apple Enterprise Support(契約なし)に連絡したところ、私の問題は開発者が695ドルを投じて解決しなければならないと言われました。
再構築できないため、現在ダウンしているWebサイトがあります。この時点でどこでこれを支援するかわからない。私は何かを見つけることができるかどうかを確認するためにオンラインで探し続けます。ただし、データベースを再構築できるように、誰かがすぐに答えてくれることを願っています。
更新:2012/12/13 15:33 GMT-6
Ps auwwx | grep postgの出力は次のとおりです。
_postgres 28123 0.0 0.1 2479696 7724 ?? Ss 3:01PM 0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1 28216 0.0 0.0 2432768 620 s000 R+ 3:02PM 0:00.00 grep postg
_postgres 28138 0.0 0.0 2439388 752 ?? Ss 3:01PM 0:00.01 postgres: stats collector process
_postgres 28137 0.0 0.0 2479828 1968 ?? Ss 3:01PM 0:00.00 postgres: autovacuum launcher process
_postgres 28136 0.0 0.0 2479696 544 ?? Ss 3:01PM 0:00.00 postgres: wal writer process
_postgres 28135 0.0 0.0 2479696 732 ?? Ss 3:01PM 0:00.01 postgres: writer process
_postgres 28134 0.0 0.0 2479696 592 ?? Ss 3:01PM 0:00.00 postgres: checkpointer process
_postgres 28131 0.0 0.0 2439388 368 ?? Ss 3:01PM 0:00.00 postgres: logger process
更新:2012/12/13 18:10 GMT-6
激しいウェブ検索の後、このビデオが見つかりました。 PostgreSQLを動作させ、エラーを取り除くことができました。 pgadminとphppgadminを使用して接続できます。欲求不満のため、私はLion Serverに戻ろうとしていました。今、私はする必要はありません。
エラーを防ぐために、次を.bash_profileに追加できました。
export PGHOST=localhost
これは動作します 理由 :
ホスト名を省略すると、psqlはUnixドメインソケットを介してローカルホスト上のサーバーに接続するか、TCP/IPを介してUnixドメインソケットを持たないマシンのローカルホストに接続します。
ご使用のOSはUnixドメインソケットをサポートしていますが、psql
が必要とするPostgreSQLのUnixソケットは存在しないか、予想とは異なる場所にあります。
ホスト名を明示的にlocalhost
として指定すると、psql
にTCP/IPを強制的に使用させます。環境変数PGHOST
を設定することは、そのための方法の1つです。 psqlのマニュアル に文書化されています。
コンソールに貼り付けてみてください:
$ mkdir /var/pgsql_socket/
$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/
PostgreSQLホストアドレスを空白のままにするのではなく、127.0.0.1を入力するだけで解決できました。 (ジャンゴの例)
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.postgresql_psycopg2',
'NAME': 'database_name',
'USER': 'database_user',
'PASSWORD': 'pass',
'Host': '127.0.0.1',
'PORT': '',
}
}
お気に入りのエディターで「postgresql.conf」を開きます。変数 'unix_socket_directories'を探します。ほとんどの場合、次のようになります。
unix_socket_directories = '/private/tmp/'
行を次のように変更します。
unix_socket_directories = '/var/pgsql_socket/'
複数のディレクトリにあるソケットファイルをコンマで区切る場合は注意してください。
コメントで他の人が述べたように、この問題に対する本当に簡単な解決策は、データベース構成内でデータベース「ホスト」を宣言することです。これを読んでいる人にとってわかりやすくするために、この答えを追加します。
たとえば、RubyアプリのRailsでは、/ config/database.ymlを編集します。
development:
adapter: postgresql
encoding: unicode
database: database_name
pool: 5
Host: localhost
注:ホストを指定するために追加された最後の行。 Yosemiteに更新する前に、この方法でホストを指定する必要はありませんでした。
これが誰かを助けることを願っています。
乾杯
より簡単なソリューション( http://daniel.fone.net.nz/blog/2014/12/01/fixing-connection-errors-after-upgrading-postgres/ に感謝)。私はpostgres 9.4にアップグレードしました。私の場合、必要なことはすべて(グーグルで成功しなかった1日後)
gem uninstall pg
gem uninstall activerecord-postgresql-adapter
bundle install
Webrickを再起動してください!
データベースのステータスを確認します。
service postgresql status
データベースが実行されていない場合は、dbを起動します。
Sudo service postgresql start
Postgresql.confファイルを確認できますか?
Postgresが実行されているポートは何ですか??
私はそれがポート5322で実行されていないと思います
または端末使用時
psql -U postgres -p YOUR_PORT_NUMBER database_name
Djangoでこの問題が発生しました。
ホスト名を明示的に「localhost」に設定して修正します。
私はこれを行うことでWordで作成します:
dpkg-reconfigure locales
好みのロケールを選択します
pg_createcluster 9.5 main --start
(9.5はpostgresqlの私のバージョンです)
/etc/init.d/postgresql start
それからWord!
Sudo su - postgres
psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket"/var/pgsql_socket/.s.PGSQL.5432"?
上記のエラーを取得し続けたが、上記の解決策はどれも役に立たなかった。最後に、次の解決策がMac OS Xでの私の問題を解決しました
Brewを使用してpostgresをインストールする
brew install postgres
醸造サービスをインストールする
brew tap homebrew/services
Postgresをバックグラウンドサービスとして開始するには
brew services start postgresql
Postgresを手動で停止するには
brew services stop postgresql
醸造サービスを使用してPostgresを再起動することもできます
brew services restart postgresql
上記の問題はあるが、Yosemiteからアップグレードした場合は、アップグレードソリューションがいくつかのファイルを破壊する可能性があるため、別のアプローチが必要です。詳細は `pg_tblspc`がOS Xの最新バージョン(YosemiteまたはEl Capitan)のインストール後に欠落しています にあります。
次のコードでpostgresサーバーが実行されていることを確認してください
Sudo service postgresql status
postgresサーバーが非アクティブの場合、次のコマンドを記述します。
Sudo service postgresql start
apt-get install postgres-xc-client
apt-get install postgres-xc
最初に、インストールされているpostgresを削除します。
Sudo apt-get purge postgr*
Sudo apt-get autoremove
次に、「シナプス」をインストールします。
Sudo apt-get install synaptic
Sudo apt-get update
次に、Postgresをインストールします
Sudo apt-get install postgresql postgresql-contrib
私はちょうど新しいクラスターを作成し、それは私のために働いた、私は(PostgreSQL)9.3.20を使用していました:
Sudo pg_createcluster 9.3 main --start
ファイル許可は、Mac OSが所有するPostgres dbでは制限されています。これらの権限は、再起動後、またはPostgresの再起動後にリセットされます。 serveradminはpostgresを起動します。
そのため、許可または所有権を一時的にリセットします。
Sudo chmod o+rwx /var/pgsql_socket/.s.PGSQL.5432
Sudo chown "webUser" /var/pgsql_socket/.s.PGSQL.5432
権限のリセットは安全ではないため、ソリューション用に所有しているバージョンのdbをインストールしてください。
コンピューターがフリーズし、自動的に再起動した後、このエラーが発生しました。私のための解決策はこのページではなく、別の非常に高い評価SOの質問と同じエラーで見つかりませんでした psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません(Mac OS X) 。答え:このファイル/usr/local/var/postgres/postmaster.pid
を削除してから、brew services restart postgresql
がトリックを行いました。これを行う前にpostgresプロセスの強制終了に関するリンクされた回答の警告に注意してください。
しばらく時間がかかりましたが、提示された提案と追加のWeb検索を行った後、最終的にこの機能を動作させることができました。 Mactasiaが作成した次のYouTubeビデオの情報を使用しました。
http://www.youtube.com/watch?v=y1c7WFMMkZ4
これを行ったとき、拡張子が.lockのファイルを見ました。ただし、PostgreSQLを使用してRailsアプリケーションでの作業を再開したときに、Railsサーバーを起動しようとすると、エラーが発生します。今回は、許可拒否エラーが発生しました。これは、plistのlisten_addressesを変更する必要があるだけでなく、unit_socket_permissionsを0777に変更する必要があることを思い出したときです。また、rootとしてログインして、ユーザーレベル。 Postgresは現在正常に動作しています。 SQLバックアップからデータを再読み込み中です。
私が理解できなかったのは、Wikiを有効にしたときに、PostgreSQLがSudo serveradmin fullstatus postgresを実行したときにおそらく動作していたが、それでもエラーが発生することでした。しかたがない。