Homebrewを使用してMac(10.10.1/Yosemite)にインストールされたPostgresql 9.4.0をインストールしました。それは動作しません。
〜/ Library/LaunchAgentsに/usr/local/opt/postgresql/homebrew.mxcl.postgresql.plistへのソフトリンクを作成しました。
Postgresを手動でロードしようとすると、「Operation is in progress」というメッセージが表示されます
> launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
/usr/local/Cellar/postgresql/9.4.0/homebrew.mxcl.postgresql.plist: Operation already in progress
ただし、postgresは実行されていないようです。
> ps auxw | grep post
billmcn 670 0.0 0.0 2424272 452 s000 R+ 10:12PM 0:00.01 grep post
コマンドラインクライアントに接続できません。
> 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"?
私の知る限り、 otherStackoverflow で提案されたこの問題を議論するすべての修正を試しました。具体的には:
Homebrew postgresはこのマシンで以前に動作していました。壊れたのはバージョン8からバージョン9へのアップグレードだと思いますが、よくわかりません。
保存する必要のあるデータベースはありません。私はpostgresできれいに始めたいと思っています。今すぐ動作するようにする必要があります。何か案は?
この問題は、/ usr/local/var/postgresディレクトリーに対する許可であったようです。以下は、物事が機能していなかったときの私のvarディレクトリの様子です。
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwxr--r-- 2 root admin 68 Dec 29 21:37 postgres
(whoami = "billmcn")
/ usr/local/var/postgresを削除し、postgresをアンインストールして再インストールしたところ、次のようになりました。
ll /usr/local/var/
drwxr-xr-x 3 billmcn admin 102 Dec 20 12:44 cache
drwx------ 23 billmcn admin 782 Dec 30 10:51 postgres
このディレクトリのアクセス権に気を取られたことを覚えていないので、どうやってこの状態になったかはわかりませんが、関係ありません。今は動作します。
新しくインストールしたYosemiteにhomebrewを使用してpostgresをインストールするときに同じ問題が発生しました。
まず、私のbrew configは次のようになります。
HOMEBREW_VERSION: 0.9.5
Origin: https://github.com/Homebrew/homebrew
HEAD: 9f6926265f8e4be7cc80dfe9042f2cd3c1e8dc9e
Last commit: 64 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit sandybridge
OS X: 10.10.1-x86_64
Xcode: 6.1.1
Clang: 6.0 build 600
X11: N/A
System Ruby: 2.0.0-481
Perl: /usr/bin/Perl
Python: /usr/bin/python
Ruby: ~/.rvm/rubies/Ruby-2.1.1/bin/Ruby
最初に気づいたのは、/usr/local/var/postgres
への書き込み権限がなかったことです。これはSudo chown -R `whoami` /usr/local/var/postgres
を発行して簡単に変更され、その後postgresqlを再インストールして
cat /usr/local/var/postgres/server.log
明らかにした:
postgres cannot access the server configuration file "/usr/local/var/postgres/postgresql.conf": No such file or directory
そこで、/usr/local/var/postgres
ディレクトリを削除し、データベースを初期化するコマンドを発行しました。
initdb -D /usr/local/var/postgres/
これはトリックを行ったようで、postgresは正常に動作しています。
同じ問題がありました。ここでの主な問題は、インストールのinitdbステップで、Macのユーザーとしてではなく、ルート所有権でディレクトリが作成されることです。この問題を解決するには:
initdb
を実行する前にデータディレクトリを作成し、許可を0700に設定します
rm -rf /usr/local/var/postgres # in case this is not your first try
mkdir /usr/local/var/postgres
chmod 0700 /usr/local/var/postgres
次にinitdb
を実行すると、データディレクトリの権限が尊重されます。
initdb -D /usr/local/var/postgres
にやにや笑いの場合は、ユーザーにちなんで名付けられたテストデータベースを作成します。
createdb `whoami`
テストするためにログインします:
psql
Homebrewでpostgresqlをインストールしようとした後、私はこれを得ました:
Warning: postgresql-9.5.2 already installed, it's just not linked
だから私は試しました:
brew link postgresql
そして、このエラーが発生しました:
Linking /usr/local/Cellar/postgresql/9.5.2...
Error: Could not symlink share/man/man3/SPI_connect.3
/usr/local/share/man/man3 is not writable.
それは書き込み許可の問題のようでしたので、私はしました:
Sudo chown -R `whoami` /usr/local/share/man/
それはトリックをしたので、それから私はできました(エラーなしで):
brew link postgresql
この問題に対処するHomebrewのgithubのスレッドであることに注意してください: https://github.com/Homebrew/homebrew/issues/3524
同様の問題がありました。ジェームズの答えは私がそれを解決するのを助けました。しかし、jbkが言及している問題に遭遇しました(/ usr/local/var/postgresを削除した後、再作成され続けました)。
問題は、シンボリックリンクを作成した場合:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
プロセスを開始しました:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
最初にアンロードする必要があります。
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
jamesのコマンドを実行する前に。
rm -rf /usr/local/var/postgres # in case this is not your first try
mkdir /usr/local/var/postgres
chmod 0700 /usr/local/var/postgres
さらに、私のように、homebrewを管理する管理ユーザーと、開発目的でpgslを使用する一般ユーザーがいる場合、Jamesコマンドをスーパーユーザーとして実行する必要があります。
Sudo -s
そして、postgresディレクトリーの所有権をdevユーザーに付与する必要があります。
chown my-dev-user /usr/local/var/postgres
Devユーザーとして実行される次のコマンドは、ディレクトリを適切に設定する必要があります。
createdb `whoami`
ランニング:
psql -l
このような操作の後、postgreのテーブルとユーザー権限が表示されます。
お役に立てれば。
誰かが以前のバージョンからアップグレードした場合、忘れないでください:
brew postgresql-upgrade-database
これは、既存のデータベースをpostgresをアップグレードしたバージョンにアップグレードすることで問題を解決します。
エラーを修正するために@leo_chaz_maltraitをチェックしてくださいCould not symlink share/man/man3/SPI_connect.3
表示される可能性のある別のエラー:
Error: Could not symlink lib/pkgconfig/libecpg.pc
Sudo chown -R `whoami` /usr/local/lib/pkgconfig
brew link postgresql
後世のために、私はこの問題を抱えていました。
High Sierraでpostgres 11.2を実行しています。最近、_brew postgresql-upgrade-database
_を使用してpostgres 10からアップグレードしました。
エラー_psql: could not connect to server: No such file or directory
_が表示され続け、server.logがis another postmaster (PID 5894) running in data directory "/usr/local/var/postgres"?
を示しました
コンピューターの再起動、_postmaster.pid
_の削除、_brew services restart postgres
_の使用など、いくつかの解決策を試しましたが、役に立ちませんでした。私は最終的に解決策につまずいた:
_brew unlink postgresql && brew link postgresql
_
これがなぜ機能したのか分かりませんが、ほとんどここに置いて、将来自分で参照できるようにします!固まるまで壁に物を投げてください!