mac系统装上postgresql后,他的路径是/Library/Postgresql/9.2
说明:
1.postgresql的启动用户是postgresql,或者是其他用户,总之不能是root,但必须保证该用户拥有postgresql安装后路径的所有权限,最好设置该路径的owner为非root用户
2.启动命令为 ${postgres root path}/bin/pg_ctl -D ${postgres root path}/data start
3.连接postgres的命令为 ${postgres root path}/bin/psql -U ${postgres数据库中设置的登录用户,默认用户为postgres},如果没有加 -u 设置用户的话,会使用系统当前登录用户的用户名作为postgres的用户,这样可能出现psql: FATAL: role "root" does not exist等问题
4.postgres的数据库库的用户认证配置文件为 ${postgres root path}/data/pg_hba.conf,可以通过设置ipv4用户的验证方式为trust以避免输入postgres的密码登录
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
psql: could not connect to server: Permission denied
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
此情况出现的原因是在$PATH中的某个路径下存在psql,并且改psql执行时默认连接到"/var/pgsql_socket/.s.PGSQL.5432",
解决方案为:
1.执行postgresql提供的路径修复批处理文件
curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh
2.修复$PATH,将psql的安装目录放置在$PATH的最前边,确保直接执行psql时使用的psql工具是postgres的安装目录中的工具
3.另外一个方案是,先关掉默认路径启动的postgresql,然后cp postgresql的跟路径 至/usr/local/pgsql,并且将/usr/local/pgsql 的拥有者设置为postgresql的拥有者,然后以postgresql的拥有者身份启动pgsql