Mac OS XでPostgreSQLサーバーを起動するにはどうすればいいですか? 質問する

Mac OS XでPostgreSQLサーバーを起動するにはどうすればいいですか? 質問する

最終更新:

コマンドを実行するのを忘れていましたinitdb


このコマンドを実行すると

ps auxwww | grep postgres

postgres実行されていないようです

> ps auxwww | grep postgres
remcat          1789   0.0  0.0  2434892    480 s000  R+   11:28PM   0:00.00 grep postgres

次のような疑問が生じます。

PostgreSQL サーバーを起動するにはどうすればよいですか?

アップデート:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory

アップデート2:

タッチ成功しなかったため、代わりに次の操作を実行しました。

> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log

しかし、Ruby on Rails サーバーを起動しようとすると、次のようなメッセージが表示されます。

サーバーはホスト「localhost」上で実行されており、ポート 5432 で TCP/IP 接続を受け入れていますか?

アップデート3:

> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

アップデート4:

pg_hba.confファイルがない ( pg_hba.conf.sampleファイルのみ)ことがわかったので、サンプルを修正して名前を変更しました (.sample を削除するため)。内容は次のとおりです。

 # IPv4 local connections:
 host    all             all             127.0.0.1/32           trust
 # IPv6 local connections:
 host    all             all             ::1/128                trust

しかし、私はこれを理解できません:

> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running

また:

sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory

アップデート5:

sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.

アップデート6:

これは奇妙に思えます:

> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory

しかし、私はこれをやりました:

>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample

そこで私はこうしました:

egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost'        # what IP address(es) to listen on;
#port = 5432                # (change requires restart)
                # supported by the operating system:
                #   %r = remote host and port

そこで私はこれを試しました:

> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf

「サーバーは実行されていますか?」という同じメッセージが引き続き表示されます。

ベストアンサー1

自家製パッケージ マネージャーには、自動的に起動するための launchctl plist が含まれています。詳細については、 を実行してくださいbrew info postgres

手動で開始

pg_ctl -D /usr/local/var/postgres start

手動で停止する

pg_ctl -D /usr/local/var/postgres stop

自動的に開始

「launchd が今すぐ postgresql を起動し、ログイン時に再起動するようにするには:」

brew services start postgresql


の結果は何ですかpg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start?

の結果は何ですかpg_ctl -D /usr/local/var/postgres status?

server.log にエラー メッセージはありますか?

pg_hba.conf で tcp localhost 接続が有効になっていることを確認します。

# IPv4 local connections:
host    all    all    127.0.0.1/32    trust

postgresql.conf の listen_addresses とポートを確認します。

egrep 'listen|port' /usr/local/var/postgres/postgresql.conf

#listen_addresses = 'localhost'        # What IP address(es) to listen on;
#port = 5432                # (change requires restart)

清掃

PostgreSQLはおそらく自家製フィンクMacポートまたはエンタープライズDBインストーラ。

次のコマンドの出力をチェックして、どのパッケージ マネージャーを使用してインストールされたかを確認します。

brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres

おすすめ記事