pg_ctl コマンドが見つかりません

2019.10.13 (日)

ひょんなことでpg_ctlが使えないことあります。

$ pg_ctl reload
-bash: pg_ctl: コマンドが見つかりません

殆どの場合パスが通っていないだけ。

$ echo $PATH
/usr/pgsql-12/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/var/lib/pgsql/bin:/usr/local/bin:/var/lib/pgsql/bin:/usr/local/bin

ん?なんか通ってるくさい?

# find / -name "pgsql"
/etc/sysconfig/pgsql
/var/lib/pgsql

いや、全然違う。postgresのホームを指しているっぽい。なんか問題ないっぽい。

/var/lib/pgsql/.pgsql_profileを見てみる。

$ vi .pgsql_profile

PATH=/usr/pgsql-12/bin:$PATH
MANPATH=/usr/pgsql-12/share/man:$MANPATH
PGDATA=/var/lib/pgsql/12/data
export PATH MANPATH PGDATA

なんで12になってるんだろ。11に修正して、

PATH=/usr/pgsql-11/bin:$PATH
MANPATH=/usr/pgsql-11/share/man:$MANPATH
PGDATA=/var/lib/pgsql/11/data
export PATH MANPATH PGDATA

保存してから、source .bash_profileで反映します。
なんで.bash_profileかというと、.pgsql_profile.bash_profileに読み込まれているので、.bash_profileの方をsourceしないとダメってことです。