以前、EnterpriseDB インストーラーを使用して PostgreSQL 9.2 を Mac にインストールしました。.bash_profile
そのため、私はを読むように修正しましたがexport PATH=/opt/local/lib/postgresql92/bin:$PATH
、すべてがうまく機能していました。
その後、ハードドライブが破損し、コンピューターを再フォーマットして OSX を再インストールする必要がありました。最初に、Snow Leopard (私が持っていたリカバリ ディスクのバージョン) を再インストールし、次に (クラッシュする前に実行していた) Mountain Lion に再アップグレードする必要がありました。次に、Migration Assistant で Time Machine バックアップを使用して、ユーザー、アプリケーション、および「その他のファイル」を復元しました。
周りを見渡すと、すべてが墜落前の状態に戻っているように見えました。ただし、PostgreSQL 関連の操作を実行しようとすると、次のエラーが表示されます。
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 サーバーが起動していなかったことが原因である可能性があることがわかりました。公式ドキュメントには、次のコマンドを使用するように書かれています。
$ postgres -D /usr/local/pgsql/data
しかし、私にはフォルダがありません/usr/local/pgsql
。data
私が見つけることができる唯一のディレクトリは/Library/PostgreSQL/9.2/data
. postgres
だから私はやることに切り替えてsudo su postgres
、postgres -D /Library/PostgreSQL/9.2/data
もう一度やり直しました。
2013-08-18 11:38:09 SGT FATAL: could not create shared memory segment: Invalid argument
2013-08-18 11:38:09 SGT DETAIL: Failed system call was shmget(key=5432001, size=32374784, 03600).
2013-08-18 11:38:09 SGT HINT: This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 32374784 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
The PostgreSQL documentation contains more information about shared memory configuration.
ここからどこへ行けばいいですか?この全体は少し奇妙です。最初に PostgreSQL をインストールしたときにサーバーを起動する必要があったことを覚えていません...
編集initdb -D /Library/PostgreSQL/9.2/data
: dbクラスターが見つからない場合にも試しましたが、次のようになりました:
initdb: directory "/Library/PostgreSQL/9.2/data" exists but is not empty
If you want to create a new database system, either remove or empty
the directory "/Library/PostgreSQL/9.2/data" or run initdb
with an argument other than "/Library/PostgreSQL/9.2/data".
それで、システム上の他のほとんどのものと一緒に復元されて、まだそこにあるはずですよね?