h9u*_*est 652 authentication postgresql
我正在设置我的PostgreSQL 9.1.我对PostgreSQL无能为力:不能createdb,不能createuser; 所有操作都返回错误消息
Fatal: role h9uest does not exist
Run Code Online (Sandbox Code Playgroud)
h9uest是我的帐户名,我sudo apt-get install在这个帐户下的PostgreSQL 9.1.
该root帐户仍然存在类似的错误.
Erw*_*ter 714
使用操作系统用户 postgres创建数据库 - 只要您没有设置具有与您的同名操作系统用户相对应的必要权限的数据库角色(h9uest在您的情况下):
sudo -u postgres -i
Run Code Online (Sandbox Code Playgroud)
然后再试一次.键入exit时为系统用户操作完成postgres.
或执行单个命令createuser为postgres同sudo一样证明由徳雷斯的另一种回答.
关键是使用与同名数据库角色匹配的操作系统用户通过ident身份验证授予访问权限.postgres是初始化数据库集群的默认操作系统用户.手册:
为了引导数据库系统,新初始化的系统始终包含一个预定义角色.此角色始终是"超级用户",默认情况下(除非在运行时更改
initdb),它将与初始化数据库集群的操作系统用户具有相同的名称.通常,此角色将被命名postgres.为了创建更多角色,您首先必须以此初始角色进行连接.
我听说过使用非标准用户名或操作系统用户不存在的奇怪设置.你需要在那里调整你的策略.
dre*_*ees 267
在尝试了许多其他人的解决方案后,没有成功,这个答案终于帮助了我.
总之,跑步
sudo -u postgres createuser owning_user
Run Code Online (Sandbox Code Playgroud)
创建一个名为owning_user的角色(在本例中为h9uest).之后,您可以rake db:create在您设置的任何帐户名称下从终端运行,而无需进入postgres环境.
小智 123
sudo su - postgres
psql template1
Run Code Online (Sandbox Code Playgroud)
在pgsql上创建角色,权限为"超级用户"
CREATE ROLE username superuser;
eg. CREATE ROLE demo superuser;
Run Code Online (Sandbox Code Playgroud)
然后创建用户
CREATE USER username;
eg. CREATE USER demo;
Run Code Online (Sandbox Code Playgroud)
为用户分配权限
GRANT ROOT TO username;
Run Code Online (Sandbox Code Playgroud)
然后启用登录该用户,这样你就可以运行eg:,psql template1从普通$终端:
ALTER ROLE username WITH LOGIN;
Run Code Online (Sandbox Code Playgroud)
Mil*_*son 80
使用postgres安装apt-get不会创建用户角色或数据库.
要为您的个人用户帐户创建超级用户角色和数据库:
sudo -u postgres createuser -s $(whoami); createdb $(whoami)
小智 67
这对我有用:
psql -h localhost -U postgres
Run Code Online (Sandbox Code Playgroud)
Jan*_*Jan 24
我使用 docker-compose 进行了健康检查。
healthcheck:
test: ['CMD-SHELL', 'pg_isready']
interval: 5s
timeout: 5s
retries: 5
Run Code Online (Sandbox Code Playgroud)
如果您也有更改用户:
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres'] # <<<---
interval: 5s
timeout: 5s
retries: 5
Run Code Online (Sandbox Code Playgroud)
Moh*_*med 12
工作方法,
vi /etc/postgresql/9.3/main/pg_hba.conflocal all postgres peer
这里改变对以信任重新开始, sudo service postgresql restart
现在试试, psql -U postgres
对于Postgres 9.5版本,请 使用以下命令:
psql -h localhost -U postgres
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助。
小智 6
在本地用户提示符下,不是root用户提示符,键入
sudo -u postgres createuser <local username>
Run Code Online (Sandbox Code Playgroud)
然后输入本地用户的密码.
然后输入生成"角色'用户名'不存在的上一个命令."
上面的步骤解决了我的问题.如果没有,请发送以上步骤的终端消息.
我在macOS上安装它并且必须:
cd /Applications/Postgres.app/Contents/Versions/9.5/bin
createuser -U postgres -s YOURUSERNAME
createdb YOURUSERNAME
Run Code Online (Sandbox Code Playgroud)
以下是来源:https://github.com/PostgresApp/PostgresApp/issues/313#issuecomment-192461641
在我的例子中,手动创建数据库集群解决了这个问题。
由于某种原因,当我安装 postgres 时,没有创建“初始数据库”。执行initdb对我来说起了作用。
PostgreSQL Wiki - 第一步中提供了此解决方案:
初始化数据库
通常,将 postgres 安装到操作系统会创建一个“初始数据库”并启动运行的 postgres 服务器守护进程。如果没有,那么您需要运行 initdb
psql postgres
postgres=# CREATE ROLE username superuser;
postgres=# ALTER ROLE username WITH LOGIN;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
673135 次 |
| 最近记录: |