postgresql 启动以及连接相关问题解决方案
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的密码登录
# TYPEDATABASE 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
4.mac环境由于postgresql的安装路径不在/usr/local/pgsql,对于非postgresql的拥有者直接执行psql时可能会报错
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
/usr/local/pgsql/bin/pg_ctl-D/usr/local/pgsql/data start
(此种方式可以解决python等语言在条用psql时的错误,主要原因是python的类库中需要用到/usr/local/pgsql/bin/pg_config文件)
5.psql登录成功后就可以执行相关的sql操作了,表数据的增删改成与其他数据库如mysql基本一致,注意每句sql后加";",以便控制台识别出sql输入完成,否则回车后将什么都不显示
操作数据库以及表接口相关
连接数据库, 默认的用户和数据库是postgres
psql -U user -d dbname
切换数据库,相当于mysql的use dbname
\c dbname
列举数据库,相当于mysql的show databases
\l
列举表,相当于show tables
\dt
查看表结构,相当于desc tblname,show columns from tbname
\d tblname
其他数据库的操作见postgresql官方教程http://www.postgresql.org/docs/
页:
[1]