我忘记或者在安装过程中输入了PostgreSQL默认用户的密码。我似乎不能运行它,我得到以下错误:
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
是否有方法重置密码或如何创建具有超级用户权限的新用户?
我是PostgreSQL的新手,只是第一次安装它。我正在尝试使用Ruby on Rails,我正在运行Mac OS X v10.7 (Lion)。
我忘记或者在安装过程中输入了PostgreSQL默认用户的密码。我似乎不能运行它,我得到以下错误:
psql: FATAL: password authentication failed for user "hisham"
hisham-agil: hisham$ psql
是否有方法重置密码或如何创建具有超级用户权限的新用户?
我是PostgreSQL的新手,只是第一次安装它。我正在尝试使用Ruby on Rails,我正在运行Mac OS X v10.7 (Lion)。
当前回答
如果你在macOS上运行PostgreSQL,试试这些:
Edit the pg_hba.conf file sudo vi /Library/PostgreSQL/9.2/data/pg_hba.conf Change the "md5" method for all users to "trust" near the bottom of the file Find the name of the service ls /Library/LaunchDaemons Look for postgresql Stop the postgresql service sudo launchctl stop com.edb.launchd.postgresql-9.2 Start the postgresql service sudo launchctl start com.edb.launchd.postgresql-9.2 Start a psql session as postgres psql -U postgres (shouldn't ask for password because of 'trust' setting) Reset password in the psql session by typing: ALTER USER postgres with password 'secure-new-password'; \q Enter Edit the pg_hba.conf file Switch it back to 'md5' Restart services again
其他回答
将下面的代码添加到pg_hba.conf文件中。PostgreSQL的安装目录中会出现哪个
hostnossl all all 0.0.0.0/0 trust
它将开始工作。
对于Windows(这对我很有帮助):
这就是我要参考的文档:如何重置PostgreSQL密码?
Open your cmd and go to C:\Program Files\PostgreSQL\12\data. This is usually the right path. You might have it stored somewhere else. Note that, if you have a different PostgreSQL version, there will be a different number. That doesn't matter. Find a pg_hba.conf file and copy it to somewhere else (that way you will have an unmodified version of this file, so you will be able to look at it after we make some changes) Open the pg_hba.conf file (not the backup, but the original) Find the multiple lines that start with host near the bottom of the file: host all all 127.0.0.1/32 md5 host all all ::1/128 md5 host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 Replace md5 with trust: host all all 127.0.0.1/32 trust host all all ::1/128 trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust Close this file Go to your search bar on windows and open Services app. Find postgres and restart it. Picture of services app Write cd.. in cmd and then cd bin. Your path should be C:\Program Files\PostgreSQL\12\bin Enter: psql -U postgres -h localhost Enter: ALTER USER postgres with password '<your new password>';Make sure that you include ; at the end “ALTER ROLE” should be displayed as an indication that the previous line was executed successfully Open original pg_hba.conf file and change back from trust to md5 Restart the server with Services app as before
我这么做是为了解决同样的问题:
在终端上用gedit编辑器打开pg_hba.conf文件:
sudo gedit /etc/postgresql/9.5/main/pg_hba.conf
它会要求输入密码。输入admin登录密码。 这将打开gedit文件。粘贴如下一行:
host all all 127.0.0.1/32 trust
just below -
# Database administrative login by Unix domain socket
保存并关闭它。
关闭终端,重新打开并运行如下命令:
psql -U postgres
现在您将进入psql控制台。
现在输入这个来修改密码:
ALTER USER [your preferred user name] with password '[desired password]';
如果它说用户不存在,那么使用CREATE而不是ALTER。
最后,删除粘贴到pg_hba中的特定行并保存它。
Edit the file /etc/postgresql/<version>/main/pg_hba.conf and find the following line: local all postgres md5 Edit the line and change md5 at the end to trust and save the file Reload the postgresql service sudo service postgresql reload This will load the configuration files. Now you can modify the postgres user by logging into the psql shell psql -U postgres Update the postgres user's password alter user postgres with password 'secure-passwd-here'; Edit the file /etc/postgresql/<version>/main/pg_hba.conf and change trust back to md5 and save the file Reload the postgresql service sudo service postgresql reload Verify that the password change is working psql -U postgres -W
如果你在macOS上运行PostgreSQL,试试这些:
Edit the pg_hba.conf file sudo vi /Library/PostgreSQL/9.2/data/pg_hba.conf Change the "md5" method for all users to "trust" near the bottom of the file Find the name of the service ls /Library/LaunchDaemons Look for postgresql Stop the postgresql service sudo launchctl stop com.edb.launchd.postgresql-9.2 Start the postgresql service sudo launchctl start com.edb.launchd.postgresql-9.2 Start a psql session as postgres psql -U postgres (shouldn't ask for password because of 'trust' setting) Reset password in the psql session by typing: ALTER USER postgres with password 'secure-new-password'; \q Enter Edit the pg_hba.conf file Switch it back to 'md5' Restart services again