我总是要给出像sudo -u postgres psql
这样的命令才能登录Postgres控制台。为了登录sudo psql
或psql
我正在处理的环境是Ubuntu Linux 12.04
提前致谢。
答案 0 :(得分:1)
安装后,只有postgres
用户能够对数据库服务器执行任何操作,这是正常的。安装程序不能假设我们想要打开对其他任何人的访问权。
为了让自己作为临时用户进行访问,假设您的登录名是joe
(您的普通,非特权用户),您只需要创建相应的用户和数据库:
在psql内部作为postgres管理员(使用sudo -u postgres psql
),发出:
CREATE USER joe;
CREATE DATABASE joe OWNER joe;
之后,在shell提示符下发出psql
时,它将默认使用您的用户名连接到您自己的数据库。在您需要发出其他管理员命令之前,您不再需要sudo到postgres
。
答案 1 :(得分:0)
会
psql -U psql
为你工作?
编辑:
我虽然你会介意sudo
。
如果您的问题是键入-U <user>
,您还可以设置环境变量PGUSER
。这也可以在shell的登录脚本中完成,以便始终设置它。
感兴趣的其他环境变量可能是PGDATABASE
,PGHOST
,PGPORT
。
答案 2 :(得分:0)
你的psql在/ usr / bin / psql中。除非您的权限错误,否则您不需要使用sudo,或者除非您的链接错误。 (在PostgreSQL的更高版本中,/ usr / bin / psql是可执行文件的符号链接。我不知道在8.4中是否正确。在我的家用计算机上,它链接到/ usr / share / postgresql-common / pg_wrapper 。)
psql的完整框架语法是
psql -U username -h hostname -p portnumber database_name
因此,例如,当我连接到我的临时数据库(名为“sandbox”)时,我会这样做。
$ psql -U postgres -h localhost -p 5432 sandbox
你会替换