我在Mac OS X 10.9.3中通过自制软件安装了hava PostgreSQL 9.3。当我第一次安装它时,它运行良好。重新启动后它碰巧没有启动,我不知道如何通过pg_ctl
启动它,因为我无法找到它的数据目录:
$ pg_ctl start
pg_ctl: no database directory specified and environment variable PGDATA unset
Try "pg_ctl --help" for more information.
$ pwd
/usr/local/var/postgres
$ ls -al
total 96
drwx------ 21 alex admin 714 Jun 2 21:23 .
drwx------ 3 alex admin 102 Jun 1 15:08 ..
-rw------- 1 alex admin 4 Jun 1 15:08 PG_VERSION
drwx------ 6 alex admin 204 Jun 2 11:40 base
drwx------ 42 alex admin 1428 Jun 2 14:18 global
drwx------ 3 alex admin 102 Jun 1 15:08 pg_clog
-rw------- 1 alex admin 4465 Jun 2 10:58 pg_hba.conf
-rw------- 1 alex admin 1636 Jun 1 15:08 pg_ident.conf
drwx------ 4 alex admin 136 Jun 1 15:08 pg_multixact
drwx------ 3 alex admin 102 Jun 1 18:24 pg_notify
drwx------ 2 alex admin 68 Jun 1 15:08 pg_serial
drwx------ 2 alex admin 68 Jun 1 15:08 pg_snapshots
drwx------ 7 alex admin 238 Jun 2 21:23 pg_stat
drwx------ 2 alex admin 68 Jun 2 21:23 pg_stat_tmp
drwx------ 3 alex admin 102 Jun 1 15:08 pg_subtrans
drwx------ 2 alex admin 68 Jun 1 15:08 pg_tblspc
drwx------ 2 alex admin 68 Jun 1 15:08 pg_twophase
drwx------ 4 alex admin 136 Jun 1 15:08 pg_xlog
-rw------- 1 alex admin 20571 Jun 1 15:08 postgresql.conf
-rw------- 1 alex admin 79 Jun 1 18:24 postmaster.opts
-rw------- 1 alex admin 1482 Jun 2 21:23 server.log
在/Library
中,没有标题为PostgreSQL
或其他内容的内容。
我如何找到它?
更新:
$ sudo chown -R _postgres /usr/local/var/postgres
$ ls -ld /usr/local/var/postgres
drwx------ 21 _postgres admin 714 Jun 2 21:23 /usr/local/var/postgres
#################
$ sudo -u _postgres pg_ctl -D /usr/local/var/postgres -w start
could not identify current directory: Permission denied
pg_ctl: could not open PID file "/usr/local/var/postgres/postmaster.pid": Permission denied
$ ls -al /usr/local/var/postgres/postmaster.pid
ls: /usr/local/var/postgres/postmaster.pid: Permission denied
$ sudo ls -al /usr/local/var/postgres/postmaster.pid
ls: /usr/local/var/postgres/postmaster.pid: No such file or directory
答案 0 :(得分:3)
pg_ctl
没有查看当前目录中的datadir。您必须使用PGDATA
env var或-D
命令行参数指定它。
启动:
sudo -u postgres pg_ctl -D /usr/local/var/postgres -w start
但是,您应该将其设置为开始使用launchd
。 AFAIK,它包含在Homebrew文档中。