1. ホーム
  2. マコス

[解決済み】Mac OS XでPostgreSQLサーバーを起動するには?

2022-03-23 09:57:14

質問

最終更新日です。

を実行するのを忘れていました。 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

まだ同じ"Is the server running?"のメッセージが表示されます。

解決方法を教えてください。

その ホームブリュー パッケージ・マネージャーには、自動的に起動する launchctl plists が含まれています。詳しくは 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とportを確認してください。

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は、ほとんどの場合 ホームブリュー , フィンク , MacPorts または エンタープライズDB インストーラを使用します。

以下のコマンドの出力を確認し、どのパッケージ・マネージャーでインストールされたかを判断してください。

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