ran*_*guy 162 postgresql mac-os-x
我忘记了上次是如何启动 PostgreSQL 的(那是几个月前),我不记得数据目录位于何处。该postgres命令似乎需要数据目录的位置。
如果有帮助,我在 MacOsX 上。
/usr/local/postgres 在我的 Mac 上不存在。
使用下面提供的答案,我发现它在这里:
/usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)
Pet*_*aut 199
如果您可以使用超级用户访问权限连接到数据库,那么
SHOW data_directory;
Run Code Online (Sandbox Code Playgroud)
是最短的路。
如果服务器没有运行并且您忘记了数据目录在哪里,那么您真的必须自己猜测。操作系统特定的约定或 shell 历史记录可能会提供提示。
DrC*_*sos 40
你也可以查询
select setting from pg_settings where name = 'data_directory';
Run Code Online (Sandbox Code Playgroud)
小智 30
pg_config 显示了很多信息,包括数据目录:
CONFIGURE = '--disable-debug' '--prefix=/usr/local/Cellar/postgresql/9.3.2'
'--datadir=/usr/local/Cellar/postgresql/9.3.2/share/postgresql'
'--docdir=/usr/local/Cellar/postgresql/9.3.2/share/doc/postgresql'
'--enable-thread-safety' '--with-bonjour' '--with-gssapi' '--with-krb5'
'--with-ldap' '--with-openssl' '--with-pam' '--with-libxml' '--with-libxslt'
'--with-ossp-uuid' '--with-python' '--with-perl' '--with-tcl' 'CC=clang'
'CFLAGS=-I/usr/local/Cellar/ossp-uuid/1.6.2/include'
'LDFLAGS=-L/usr/local/Cellar/ossp-uuid/1.6.2/lib' 'LIBS=-luuid'
Run Code Online (Sandbox Code Playgroud)
不过,这可能是特定于 brew 的事情;没有 brew 我不知道它显示什么。
Ada*_*tan 23
在 Ubuntu\Debian 上,试试这个pg_lsclusters命令。
在我的机器上:
pg_lsclusters
Version Cluster Port Status Owner Data directory Log file
8.4 main 5432 online postgres /home/adam/db/main/data /home/adam/db/main/log
Run Code Online (Sandbox Code Playgroud)
Joe*_*Joe 10
如果您无法登录(例如,忘记密码)但服务正在运行,因为 MacOS X 是 posix 变体,您可以随时检查ps它是否作为参数传入:
在运行两个 postgres 实例的 linux 机器上:
-bash-3.2$ ps ax | grep postgres | grep -v postgres:
4698 ? S 9:59 /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data
6115 ? S 8:16 /opt/PostgreSQL/8.4/bin/postgres -D /opt/PostgreSQL/8.4/data_sums
30694 pts/9 S+ 0:00 grep postgres
Run Code Online (Sandbox Code Playgroud)