0

sudo -u postgres psql为了登录 Postgres 控制台,我总是必须给出类似的命令。我需要做什么才能登录到 postgres 之类的sudo psqlpsql

我正在使用的环境是 Ubuntu Linux 12.04

提前致谢。

4

3 回答 3

1

安装后,只有postgres用户可以对数据库服务器进行任何操作,这是正常的。安装程序不能假设我们想要向其他任何人开放访问权限。

为了让自己作为临时用户访问,假设您的登录名是joe(您的普通非特权用户),您只需要创建一个相应的用户和数据库:

在 psql 中作为 postgres 管理员(带有sudo -u postgres psql),发出:

 CREATE USER joe;
 CREATE DATABASE joe OWNER joe;

之后,psql在 shell 提示符下发出时,默认情况下它将使用您的用户名连接到您自己的数据库。postgres在您需要发出其他管理员命令之前,您不再需要 sudo to 。

于 2013-02-13T13:29:38.333 回答
0

psql -U psql

为你工作?

编辑:

我虽然你会介意sudo

如果您的问题是打字-U <user>,您也可以设置环境变量PGUSER。这也可以在您的 shell 的登录脚本中完成,以便始终设置它。

其他感兴趣的环境变量可能是PGDATABASE, PGHOST, PGPORT.

于 2013-02-13T09:17:26.153 回答
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

因此,例如,当我连接到我的临时数据库(名为“沙盒”)时,我会这样做。

$ psql -U postgres -h localhost -p 5432 sandbox

你会代替

  • 您的数据库用户名(必须已经存在,并且不一定与您的网络/计算机用户名相同),
  • 您的主机名(但“localhost”可能适合本地安装的 PostgreSQL),
  • PostgreSQL 正在侦听的端口(但 5432 可能是正确的;它是默认值),并且
  • 您的数据库名称。
于 2013-02-13T12:39:36.120 回答