I am beginning my Elixir/Phoenix journey and having some trouble with my postgres connection.
When I start up my server I get:
$ mix phoenix.server
[error] Postgrex.Protocol (#PID<0.214.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.217.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.218.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.211.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.215.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.219.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.216.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.213.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.212.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[error] Postgrex.Protocol (#PID<0.210.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
[info] Running Rumbl.Endpoint with Cowboy using http://localhost:4000
[error] Postgrex.Protocol (#PID<0.215.0>) failed to connect: ** (Postgrex.Error) tcp connect: connection refused - :econnrefused
Being new to Elixir, Phoenix, and Ecto I am unclear how to debug this problem. Any suggestions as to what my problem is or how I might go about debugging it would be much appreciated.
My app's set up
I have a basic app
mix phoenix.new rumbl
cd rumbl
mix deps.get
mix deps.compile
My config/dev.exs has the following db setup
# Configure your database
config :rumbl, Rumbl.Repo,
adapter: Ecto.Adapters.Postgres,
username: "elixir",
database: "rumbl_dev",
hostname: "localhost",
pool_size: 10
When I run mix ecto.create
there are no errors and I can see the rumbl_dev
when I run \l
in psql. It is owned by the elixir user too.
Running mix ecto.migrate
throws the same connections errors
My pg_hba.conf file has the following
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
Here is what I see when I log in with psql
$ psql --dbname=rumbl_dev --username=elixir --host=127.0.0.1 --password
Password for user elixir:
psql (9.4.5)
Type "help" for help.
rumbl_dev=>
This happened to me twice, after macOS crashed.
Most recently I used this:
postgres -D /usr/local/var/postgres
Copy the number after PID
if you see something like this:
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 379) running in data directory "/usr/local/var/postgres"?
kill -9 PID
with the process # in place of PID
.
The steps that worked for me previously:
brew update
brew upgrade
brew postgresql-upgrade-database
Ok, so I figured it out. It is a simple mistake on my part in the end. Though an easy one to make.
I am using Boxen on my Mac and it changes the port to 15432
for some reason.
I may have landed on this sooner if the mix ecto.create
had failed. Not sure why that works.
Hopefully this will help others in the future
rumbl_dev
in postgresql to make a fresh start.If you like, you can try md5 auth for the dev version on localhost by adding the following line to the pg_hba.conf
# host DATABASE USER ADDRESS METHOD
host rumbl_dev elixir localhost md5
Note: See here for more on setting up the /etc/postsgresql/9.4/pg_hba.conf and change the settings as you see fit.
Add the complete settings with password to dev.exs
:
config :rumbl, Rumbl.Repo,
adapter: Ecto.Adapters.Postgres,
username: "elixir",
database: "rumbl_dev",
hostname: "localhost",
password: "***password***",
pool_size: 10
Try running mix do ecto.create, ecto.migrate
and see how it goes.
Hope this helps, if not, I'm out of ideas here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With