我要么忘记或者出现打印错误(在安装过程中)的密码的Postgres的默认用户。 我似乎无法能够运行它,我得到以下错误:
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
反正是有重置密码或我如何创建具有超级用户权限的新用户?
我是新来的Postgres和刚安装了它的第一次。 我试图使用Rails使用它,我正在运行的Mac OS X Lion的。
我要么忘记或者出现打印错误(在安装过程中)的密码的Postgres的默认用户。 我似乎无法能够运行它,我得到以下错误:
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
反正是有重置密码或我如何创建具有超级用户权限的新用户?
我是新来的Postgres和刚安装了它的第一次。 我试图使用Rails使用它,我正在运行的Mac OS X Lion的。
找到该文件pg_hba.conf
-它可以设置,例如在/etc/postgresql-9.1/pg_hba.conf
。
cd /etc/postgresql-9.1/
把它备份
cp pg_hba.conf pg_hba.conf-backup
将下面的线(作为第一未注释的线,或作为仅有的一个):
对于低于(本地和主机),怎样exepct复制段的所有发生的,如果你没有任何它必须被改变为如下,没有MD5或对autehication应该存在。
`local all all trust`
重新启动你的PostgreSQL服务器(例如,在Linux上:)
sudo /etc/init.d/postgresql restart
如果服务(守护进程)不会启动在日志文件中报告:
本地连接不受此版本支持
你应该改变
local all all trust
至
host all all 127.0.0.1/32 trust
您现在可以连接任何用户。 连接作为超级用户postgres
(注意, 超级用户名可能在你的安装不同。在某些系统中它被称为pgsql
,例如。)
psql -U postgres
要么
psql -h 127.0.0.1 -U postgres
(注:在第一个命令你不会总是与本地主机连接)
重置密码('与Postgres的替代my_user_name因为你是重置postgres用户)
ALTER USER my_user_name with password 'my_secure_password';
恢复旧pg_hba.conf
,因为它是非常危险的保持周围
cp pg_hba.conf-backup pg_hba.conf
重新启动服务器,以便与安全运行pg_hba.conf
sudo /etc/init.d/postgresql restart
进一步阅读有关pg_hba文件: http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html
当连接从命令行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=#
在pg_hba.conf
( C:\Program Files\PostgreSQL\9.3\data
)文件已改变,因为这些答案中给出。 什么工作对我来说,在Windows中,是打开文件并更改METHOD
从md5
到trust
:
# 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
刚一说明,在Linux上你可以简单地运行sudo su - postgres
成为Postgres的用户,并从那里更改使用PSQL需要什么。
编辑文件/etc/postgresql/<version>/main/pg_hba.conf
并找到以下行:
local all postgres md5
编辑该行并更改md5
在年底trust
和保存文件
刷新PostgreSQL服务
$ sudo service postgresql reload
这将加载配置文件。 现在,你可以修改postgres
通过登录到用户psql
壳
$ psql -U postgres
更新postgres
用户的密码
alter user postgres with password 'secure-passwd-here';
编辑文件/etc/postgresql/<version>/main/pg_hba.conf
并更改trust
回md5
和保存文件
刷新PostgreSQL服务
$ sudo service postgresql reload
确认密码更改工作
$ psql -U postgres -W
如果你在Windows下你可以运行
net user postgres postgres
和登录与postgres的/ postgres的作为用户/密码postgres的
对于Windows安装,创建一个Windows用户。 而“PSQL”使用此用户连接的端口。 如果您更改PostgreSQL用户的密码,也不会改变Windows的一个。 下面的命令行中庸之道,前提是您可以访问命令行。
相反,你可以使用Windows图形用户界面应用程序 “C:\ WINDOWS \ SYSTEM32 \ lusrmgr.exe”。 这个应用程序管理由Windows创建的用户。 所以,你现在可以修改密码。
我所做的解决同样的问题是:
从终端的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粘贴并保存它。
添加对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再次改变方法,并保存它。
现在,随着新的用户名和密码登录,您可以检查\杜其属性。
如果连接需要密码才能使用在用户的主目录或引用PGPASSFILE可以包含口令的文件的文件.pgpass(没有密码已另有规定)。 在Microsoft Windows中的文件被命名为%APPDATA%\ PostgreSQL的\ pgpass.conf(其中%APPDATA%指的是应用程序数据的子目录在用户的配置文件)。
此文件应包含以下格式的行:
主机名:端口:数据库:用户名:密码
(您可以通过复制上面的线,并用#它前面添加提醒注释文件)。每个前四个字段的可以是文字值,或者*,它匹配任何东西。 将用于从当前连接参数相匹配的第一行中的密码字段。 (因此,把更具体的条目首先,当您使用通配符)。如果一个条目需要包含:或者\逃离这个角色有。 本地主机的主机名在TCP(主机名localhost)和Unix域套接字(PGHOST空或默认插座目录)从本地机器来连接一致。 在备用服务器,复制的数据库名称匹配分流到主服务器进行复制连接。 该数据库字段用处有限的,因为用户对同一集群中的所有数据库的密码相同。
在Unix系统上.pgpass的权限必须不允许世界或组的任何访问; 通过命令chmod 0600〜/ .pgpass实现这一点。 如果权限比这个不太严格,该文件将被忽略。 在Microsoft Windows,假设该文件存储的目录中是安全的,所以没有特殊权限检查。
这是为我工作在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的)具有超级用户访问和通过右击用户和选择属性 - >角色特权提供权限给其他用户。