【发布时间】:2014-03-31 09:21:03
【问题描述】:
在 GCE 上安装 PostgreSQL 需要 root 密码才能运行 sudo -u postgresql。这会提示我输入密码,但我从未得到过。
如何获得此通行证,或以其他方式从 shell 运行 postgresql 命令的任何方式?
【问题讨论】:
标签: postgresql google-compute-engine
在 GCE 上安装 PostgreSQL 需要 root 密码才能运行 sudo -u postgresql。这会提示我输入密码,但我从未得到过。
如何获得此通行证,或以其他方式从 shell 运行 postgresql 命令的任何方式?
【问题讨论】:
标签: postgresql google-compute-engine
您的系统用户 postgresql 没有密码(我说没有证据……但我认为您会发现这是真的。)
通常你应该使用这样的命令:
# Test that YOU can use psql (as postgres) to run a query:
psql -U postgres -c 'select * from pg_catalog.pg_user;'
# Test an interactive session:
psql -U postgres my_database
my_database=# select 42 as the_answer;
# Create a new database
psql -U postgres my_database
my_database=# create database mydb;
或者,也可以这样登录 (it usually is):
sudo su postgres
您可能会使用它来运行 createdb。但是像你自己一样运行 psql 可能会更好。
【讨论】:
sudo su postgres。从那里 psql 命令就可以正常工作了。
如果你想对你的 postgresql 服务器运行命令,你不需要使用 sudo,只需使用这个语法进入 Postgresql 交互式 Shell:
psql -U username database_name
或
psql -U username hostname database_name
将 username 替换为您的 postgresql 用户名,将 hostname(如果不在同一台服务器上运行)替换为服务器主机名,将 database_name 替换为您的数据库的名称。例如:
psql -U postgressql customers
【讨论】:
createdb 命令或createuser 命令,这是我正在尝试运行的。我运行psql -U postgres createdb mydb 并得到Peer authentication failed for user "postgres"
Adding user postgres to group ssl-cert。我必须承认在发出 apt-get 后我没有设置任何其他内容,但我确信 linux 用户 postgres 存在并且默认的 db 用户 postgres 也是自动创建的。现在的问题是 - 如果没有能力运行 su - postgres 怎么能发出 createuser 命令?
通常sudo 需要您的用户帐户密码。因此,假设您运行命令的帐户列在sudoers 文件中,它提示您输入的密码应该是您自己的。您是否尝试过,而不是 root 或 postgresql 密码,您似乎没有(或者甚至可能没有设置)。
【讨论】:
sudoers 文件中列出,但我的登录帐户和root 帐户都没有登录密码。 Google 使用根证书而不是用户名/密码将您登录到 GCE 框。所以我不能用
sudo -s 来获得一个 root shell,或者 sudo su postgres