我刚刚安装了Postgres,并且已经修补了它和各种配置1-2小时.
我被困在无法改变为postgres用户
$ su - postgres
产生以下错误: su: unknown login: postgres
$ sudo -u postgres psql
产生以下错误: sudo: unknown user: postgres
这些尝试是作为普通用户进行的.以root身份尝试它们具有完全相同的结果.我在OS X上通过Homebrew安装了postgres,我已多次阅读说明.
到psql --help
,当你没有设置数据库名称的选项(无-d
选项)这将是您的用户名,如果你没有这样做-U
,数据库用户名是您的用户名太等
但通过initdb
(创建第一个数据库)命令,它没有您的用户名作为任何数据库名称.它有一个名为的数据库postgres
.初始化数据存储区时,initdb命令始终会创建第一个数据库.这个数据库叫做postgres.
因此,如果您没有另一个名为您的用户名的数据库,则需要执行psql -d postgres
psql命令才能工作.它似乎-d
默认提供选项,psql postgres
也有效.
如果您已经创建了与您的用户名相同的另一个数据库名称(它应该完成createdb
),那么您可以psql
只命令.并且似乎第一个数据库用户名由brew设置为您的计算机用户名.
psql -d <first database name> -U <first database user name>
要么,
psql -d postgres -U <your machine username> psql -d postgres
会默认工作.
psql
:使用我的默认用户名登录
psql -U postgres
:以postgres用户身份登录
Sudo对我来说似乎不是必需的.
我使用Postgres.app作为我的OS X postgres数据库.它消除了确保安装正常并且数据库服务器正确启动的麻烦.在这里查看:http://postgresapp.com
编辑:感谢@Erwin Brandstetter纠正我对参数的使用.
OS X倾向于在系统帐户名前加上"_"; 你没有说你正在使用什么版本的OS X,但至少在10.8和10.9中,_postgres用户存在于默认安装中.请注意,您将无法su
访问此帐户(root用户除外),因为它没有密码.sudo -u _postgres
另一方面,应该工作正常.