我忘了我的Postgres安装过程中输入的密码我忘了我的Postgres安装过程中输入的密码(I f

2019-05-16 20:56发布

我要么忘记或者出现打印错误(在安装过程中)的密码的Postgres的默认用户。 我似乎无法能够运行它,我得到以下错误:

psql: FATAL:  password authentication failed for user "hisham"
hisham-agil: hisham$ psql 

反正是有重置密码或我如何创建具有超级用户权限的新用户?

我是新来的Pos​​tgres和刚安装了它的第一次。 我试图使用Rails使用它,我正在运行的Mac OS X Lion的。

Answer 1:

  1. 找到该文件pg_hba.conf -它可以设置,例如在/etc/postgresql-9.1/pg_hba.conf

    cd /etc/postgresql-9.1/

  2. 把它备份

    cp pg_hba.conf pg_hba.conf-backup

  3. 将下面的线(作为第一未注释的线,或作为仅有的一个):

对于低于(本地和主机),怎样exepct复制段的所有发生的,如果你没有任何它必须被改变为如下,没有MD5或对autehication应该存在。

`local  all   all   trust`
  1. 重新启动你的PostgreSQL服务器(例如,在Linux上:)

    sudo /etc/init.d/postgresql restart

    如果服务(守护进程)不会启动在日志文件中报告:

    本地连接不受此版本支持

    你应该改变

    local all all trust

    host all all 127.0.0.1/32 trust

  2. 您现在可以连接任何用户。 连接作为超级用户postgres (注意, 超级用户名可能在你的安装不同。在某些系统中它被称为pgsql ,例如。)

    psql -U postgres

    要么

    psql -h 127.0.0.1 -U postgres

    (注:在第一个命令你不会总是与本地主机连接)

  3. 重置密码('与Postgres的替代my_user_name因为你是重置postgres用户)

    ALTER USER my_user_name with password 'my_secure_password';

  4. 恢复旧pg_hba.conf ,因为它是非常危险的保持周围

    cp pg_hba.conf-backup pg_hba.conf

  5. 重新启动服务器,以便与安全运行pg_hba.conf

    sudo /etc/init.d/postgresql restart

进一步阅读有关pg_hba文件: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html



Answer 2:

当连接从命令行Postgres的,不要忘了添加-h localhost作为命令行参数。 如果没有,Postgres将尝试使用对等身份验证模式进行连接。

以下显示了密码重置,失败的登录与对等认证,并使用一个TCP连接成功登录。

# sudo -u postgres psql
could not change directory to "/root"
psql (9.1.11)
Type "help" for help.

postgres=# \password
Enter new password:
Enter it again:
postgres=# \q

失败:

# psql -U postgres -W
Password for user postgres:
psql: FATAL:  Peer authentication failed for user "postgres"

与工作-h localhost

# psql -U postgres -W  -h localhost
Password for user postgres:
psql (9.1.11)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=#


Answer 3:

pg_hba.confC:\Program Files\PostgreSQL\9.3\data )文件已改变,因为这些答案中给出。 什么工作对我来说,在Windows中,是打开文件并更改METHODmd5trust

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

然后,使用的pgAdmin III,我登录不使用密码,更改用户的postgres'通过将密码File -> Change Password



Answer 4:

刚一说明,在Linux上你可以简单地运行sudo su - postgres成为Postgres的用户,并从那里更改使用PSQL需要什么。



Answer 5:

  1. 编辑文件/etc/postgresql/<version>/main/pg_hba.conf并找到以下行:

     local all postgres md5 
  2. 编辑该行并更改md5在年底trust和保存文件

  3. 刷新PostgreSQL服务

     $ sudo service postgresql reload 
  4. 这将加载配置文件。 现在,你可以修改postgres通过登录到用户psql

     $ psql -U postgres 
  5. 更新postgres用户的密码

     alter user postgres with password 'secure-passwd-here'; 
  6. 编辑文件/etc/postgresql/<version>/main/pg_hba.conf并更改trustmd5和保存文件

  7. 刷新PostgreSQL服务

     $ sudo service postgresql reload 
  8. 确认密码更改工作

     $ psql -U postgres -W 


Answer 6:

如果你在Windows下你可以运行

net user postgres postgres

和登录与postgres的/ postgres的作为用户/密码postgres的



Answer 7:

对于Windows安装,创建一个Windows用户。 而“PSQL”使用此用户连接的端口。 如果您更改PostgreSQL用户的密码,也不会改变Windows的一个。 下面的命令行中庸之道,前提是您可以访问命令行。

相反,你可以使用Windows图形用户界面应用程序 “C:\ WINDOWS \ SYSTEM32 \ lusrmgr.exe”。 这个应用程序管理由Windows创建的用户。 所以,你现在可以修改密码。



Answer 8:

我所做的解决同样的问题是:

从终端的gedit编辑器中打开pg_hba.conf文件:

sudo gedit /etc/postgresql/9.5/main/pg_hba.conf

它会询问你的密码。 输入你的管理员登录密码。 这将打开gedit中与文件。 粘贴以下行:

host  all   all  127.0.0.1/32  trust

略低于 -

# Database administrative login by Unix domain socket

保存并关闭它。 关闭终端,然后再次打开它,并运行此命令:

psql -U postgres

现在,您将进入PSQL控制台。 现在,通过输入此更改密码:

ALTER USER [your prefered user name] with password '[desired password]';

如果说用户不存在,而不是ALTER使用CREATE

最后,删除某些行,你在pg_hba粘贴并保存它。



Answer 9:

添加对Windows用户最新的Postgres版本的答案(> 10),

转到你的Postgres安装位置,并搜索pg_hba.conf ,你会发现它在..\postgres\data\pg_hba.conf

打开文件,记事本,找到这一行,

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections: 
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
#..

从MD5更改方法,以信任,

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections: 
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# ...

现在去你的SQL壳牌(PSQL),并留下空白的一切,

Server [localhost]:
Database [postgres]:
Port [8000]:
Username [postgres]: 

它不会要求密码这时候,你会被登录,

现在运行这一行, ALTER USER yourusername WITH SUPERUSER

现在你可以离开外壳,\ q

再次去该文件的pg_hba.conf和信任MD5再次改变方法,并保存它。

现在,随着新的用户名和密码登录,您可以检查\杜其属性。



Answer 10:

如果连接需要密码才能使用在用户的主目录或引用PGPASSFILE可以包含口令的文件的文件.pgpass(没有密码已另有规定)。 在Microsoft Windows中的文件被命名为%APPDATA%\ PostgreSQL的\ pgpass.conf(其中%APPDATA%指的是应用程序数据的子目录在用户的配置文件)。

此文件应包含以下格式的行:

主机名:端口:数据库:用户名:密码

(您可以通过复制上面的线,并用#它前面添加提醒注释文件)。每个前四个字段的可以是文字值,或者*,它匹配任何东西。 将用于从当前连接参数相匹配的第一行中的密码字段。 (因此,把更具体的条目首先,当您使用通配符)。如果一个条目需要包含:或者\逃离这个角色有。 本地主机的主机名在TCP(主机名localhost)和Unix域套接字(PGHOST空或默认插座目录)从本地机器来连接一致。 在备用服务器,复制的数据库名称匹配分流到主服务器进行复制连接。 该数据库字段用处有限的,因为用户对同一集群中的所有数据库的密码相同。

在Unix系统上.pgpass的权限必须不允许世界或组的任何访问; 通过命令chmod 0600〜/ .pgpass实现这一点。 如果权限比这个不太严格,该文件将被忽略。 在Microsoft Windows,假设该文件存储的目录中是安全的,所以没有特殊权限检查。



Answer 11:

这是为我工作在Windows上:

编辑pg_hba.conf文件位于在C:\ Program Files文件\的PostgreSQL \ 9.3 \数据。

# IPv4 local connections: host all all 127.0.0.1/32 trust

改变从信任MD5的方法,并重新启动在Windows Postgres服务。

在此之后,您可以登录通过使用pgAdmin的使用Postgres的用户不需要密码。 您可以使用文件 - >更改密码更改密码。

如果Postgres的用户不具有超级用户权限,那么你就不能更改密码。 在这种情况下,登录与另一用户(pgsql的)具有超级用户访问和通过右击用户和选择属性 - >角色特权提供权限给其他用户。



文章来源: I forgot the password I entered during postgres installation