sudo -u postgres psql
为了登录 Postgres 控制台,我总是必须给出类似的命令。我需要做什么才能登录到 postgres 之类的sudo psql
或psql
我正在使用的环境是 Ubuntu Linux 12.04
提前致谢。
sudo -u postgres psql
为了登录 Postgres 控制台,我总是必须给出类似的命令。我需要做什么才能登录到 postgres 之类的sudo psql
或psql
我正在使用的环境是 Ubuntu Linux 12.04
提前致谢。
安装后,只有postgres
用户可以对数据库服务器进行任何操作,这是正常的。安装程序不能假设我们想要向其他任何人开放访问权限。
为了让自己作为临时用户访问,假设您的登录名是joe
(您的普通非特权用户),您只需要创建一个相应的用户和数据库:
在 psql 中作为 postgres 管理员(带有sudo -u postgres psql
),发出:
CREATE USER joe;
CREATE DATABASE joe OWNER joe;
之后,psql
在 shell 提示符下发出时,默认情况下它将使用您的用户名连接到您自己的数据库。postgres
在您需要发出其他管理员命令之前,您不再需要 sudo to 。
将
psql -U psql
为你工作?
编辑:
我虽然你会介意sudo
。
如果您的问题是打字-U <user>
,您也可以设置环境变量PGUSER
。这也可以在您的 shell 的登录脚本中完成,以便始终设置它。
其他感兴趣的环境变量可能是PGDATABASE
, PGHOST
, PGPORT
.
您的 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
因此,例如,当我连接到我的临时数据库(名为“沙盒”)时,我会这样做。
$ psql -U postgres -h localhost -p 5432 sandbox
你会代替