Trying to set up postgres for ror app, getting error - fe_sendauth: no password supplied
Asked Answered
S

4

26

Getting:

An error has occurred:

Error connecting to the server: fe_sendauth: no password supplied

Settings in database.yml are the same as the app setup on other machines.

How can I set things up so that I don't need a password hardcoded?

I can view the db ok using PgAdmin-III.

I'd rather not have the password in database.yml as other machines using this app don't have/need it, so it seems likely to be something about my Pg install.

So answered 17/9, 2012 at 1:9 Comment(1)
I'd say you need to look at pg_hba.conf and see if you've added any ident or trust rules for the other DBs; compare to this one.Japhetic
C
62

You need to change your change your pg_hba.conf. Here's an example of mine:

pg_hba.conf:

TYPE  DATABASE        USER            ADDRESS                 METHOD

host    all             all             127.0.0.1/32            trust

host    all             PC             127.0.0.1/32            trust

host    all             all             ::1/128                 trust

Note that trust means that anyone on address (in this case localhost) can connect as the listed user (or in this case any user of their choice). This is really only suitable for development configurations with unimportant data. Do not use this in production.

Concavoconcave answered 17/9, 2012 at 1:48 Comment(5)
Thanks. Unfortunately I did this and restarted postgres but it didn't help. Same error.So
@MichaelDurrant Sure you're connecting to the right server and editing the right pg_hba.conf? Try SHOW hba_file; in psql to find pg_hba.conf. Also check the PostgreSQL server logs.Japhetic
I had to change "PC" to "all" in order to get this to work, but otherwise thank you for this answer!Habitual
You may have to reload your configuration after: in PGAdmin, right click "PostgreSQL X.Y" -> "Reload Configuration".Sixtasixteen
This worked! But i had to restart the pg service. I did it with sudo -u postgres -i psql SELECT pg_reload_conf();. And I found the pg_hba.conf inside psql with SHOW hba_file; command.Paroxysm
A
11

@rodrigo-zurek was spot on; you have to change the pg_hba.conf. Just want to add this answer for the OSX users because the pg_hba.conf is located in a different place by default.

sudo su - postgres
vim /Library/PostgreSQL/<YOUR_VERSION>/data/pg_hba.conf

The default will have md5 in the column METHOD, but replace all of those with trust:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

Then, open up pgAdmin III inside your Applications/PostgreSQL 9.X, right click the database (e.g. PostgreSQL 9.4 (localhost)), and click Reload Configuration. After this, I was able to rake db:create.

Aside answered 11/10, 2015 at 19:8 Comment(1)
Can you please tell how to edit pg_hba.conf and save? I am new to MacAcetum
M
0

No password supplied means you have set it up to require password authentication and no password is being supplied. Here is documentation for 9.0: http://www.postgresql.org/docs/9.0/static/auth-methods.html

Keep in mind that local auth was changed from "ident" to "peer" in 9.1 to avoid confusion. See the 9.1 docs at http://www.postgresql.org/docs/9.1/static/auth-methods.html

Also keep in mind that this is an ordered rule set with first match governing. Furthermore local and localhost are different. Local is for local UNIX domain socket connections, while host localhost would be for network connections to localhost. So it sounds like you have some troubleshooting to do but hopefully the docs should help.

Mulligrubs answered 17/9, 2012 at 6:33 Comment(0)
L
0
#appveyor.yml
services: postgresql
test_script:
  - SET PGUSER=postgres
  - SET PGPASSWORD=Password12!
  - PATH=C:\Program Files\PostgreSQL\9.6\bin\;%PATH%
Lutenist answered 16/7, 2017 at 16:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.