There have been a few post on this issue, unfortunately none of the solutions have worked for me.
My suspicion is that my postgresql is either not running or not configured correctly.
Here is where I am at, I have a development project I have joined, they are using postgresql. Here are the step I have take to get here:
Cloned Repo
Changed name of config/ database.yml.sample -> database.yml
Changed name of config/ s3.yml.sample -> s3.yml
Ran bundle install
Ran Rake db:migrate
resulting in this error:
rake aborted!
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Here is what my files currently look like:
Database.yml
development:
adapter: postgresql
encoding: unicode
database: rentsnapper_development
pool: 5
username: user
password:
test: &test
adapter: postgresql
encoding: unicode
database: rentsnapper_test
pool: 5
username: user
password:
cucumber:
<<: *test
And My s3.yml
defaults: &defaults
access_key_id:
secret_access_key:
development:
<<: *defaults
photos_bucket: rentsnapper-photos-development
Solutions Tried:
https://stackoverflow.com/a/14887090/2066855
No File listed
https://stackoverflow.com/a/14225289/2066855
No Change, when I run rake db:migrate I get the same error
https://stackoverflow.com/a/15788389/2066855
Nothing happened
Also as a side question that may or may not be relevant linux is telling me that "ruby-1.9.3-p385 is not installed", I'm running ruby-1.9.3-p362, I suspect this is unrelated. Is this something I need to update or can I get by with my current version.
Thank you in advanced...
SOLVED: I had to fix my database.yml file. Added "host: localhost" took out user & password lines.
development:
adapter: postgresql
encoding: unicode
database: rentsnapper_development
pool: 5
host: localhost
test: &test
adapter: postgresql
encoding: unicode
database: rentsnapper_test
pool: 5
host: localhost
cucumber:
<<: *test
Related
I'm trying to run my tests for my app but I keep getting both this errors:
PG::ConnectionBad: fe_sendauth: no password supplied
PG::ConnectionBad: FATAL: sorry, too many clients already
I'be read all previous answers and it seems to be, for everybody else, either a missing password or a misconfiguration of the pg_hba.conf file.
This is how my database.yml looks like:
default: &default
adapter: postgresql
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
encoding: utf8
reconnect: true
host: localhost
username: postgres
password: <password>
development:
<<: *default
database: <dev-db>
host: <dev-host>
username: <dev-user>
password: <dev-pass>
test:
<<: *default
database: <test-db>
I already checked the pg_hba.conf config file and its configured to md5 for all entries listed.
Any clues to what might be the problem?
I'm running PostgreSQL 10, Rails 5.2.3 on Ruby 2.5.5, on a Macbook with Mojave.
Thanks in advance.
Does your postgres user actually have a password set on it? Typically there is no password for the default postgres user, so this is something you would need to have gone out of your way to do; judging by the error message, it sounds like you are using the default posgres user and have not gone out of your way to set a password in the PostgreSQL CLI.
I suggest stripping it down to a very basic default, functional config like:
postgres: &postgres
adapter: postgresql
encoding: utf8
pool: 5
development:
<<: *postgres
database: project_name_development
test:
<<: *postgres
database: project_name_test
Then incrementally add back additional configuration options one at a time, confirming that each one works before adding the next. Env vars also may not be available to database.yml depending on your project configuration and installed gems.
I have a test database set like this in database.yml:
test:
adapter: postgresql
encoding: unicode
database: database_test
host: localhost
pool: 5
username: <%= ENV['PG_USERNAME']%>
password: <%= ENV['PG_PASSWORD']%>
I use spring gem for running tests (although this is not important as the issue occurs without using it as well)
The issue is that every time I run a bundle exec rspec spec/ I get an error no password supplied (PG::ConnectionBad):
/.bundle/ruby/2.3.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:651:in `initialize': fe_sendauth: no password supplied (PG::ConnectionBad)
And I need to change it manually to:
test:
adapter: postgresql
encoding: unicode
database: database_test
host: localhost
pool: 5
username: postgres
password: postgres
In order for it to work.
I have set variables in ~/.bashrc:
export PG_USERNAME="postgres"
export PG_PASSWORD="postgres"
The strange is that in development mode it all working fine when I use the same structure as in test:
development:
adapter: postgresql
encoding: unicode
database: database_dev
host: localhost
pool: 5
username: <%= ENV['PG_USERNAME']%>
password: <%= ENV['PG_PASSWORD']%>
What is the problem with my test environment and how to fix it in order for it to automatically use ENV['PG_USERNAME'] like in development mode?
I proposed a quickfix in the comments, but I'd suggest to use the excellent dotenv gem for configuration loading depending on your configuration. It would incidentally solve your current problem.
I am getting this error while doing rake db:migrate of newly cloned app.
'development' database is not configured. Available: ["production"]
So after reading the error, I am doing RAILS_ENV=production rake db:migrate
But this isn't working either.
My database.yml has
production:
adapter: postgresql
encoding: unicode
database: test
pool: 5
username: admin
password: admin
port: 5433
Please suggest.
Add
development:
adapter: postgresql
encoding: unicode
database: test
pool: 5
username: admin
password: admin
port: 5433
host: localhost
to database.yml file.
Also, if you test your application, you'll need test environment as well.
Your database.yml file shows you have only production environment configured for DB operations. You need to add configuration for development environment as well.
Open your database.yml file and add a configuration for development environment.
Something like the following should suffice (contents in square brackets are to be replaced with your actual values):
development:
adapter:[your adapter]
encoding: [your encoding]
database: [your database for development]
pool: [your pool]
username: [your database server username]
password: [your database server password]
port: [the port you're connecting on]
Remember to indent your yaml code appropriately.
From this page, it looks like Heroku does most of the work in building your database.yml file on deployment, meaning that all I have to have is my development and test environment configurations.
Is there a way I can also specify production values? For example, if I wanted to set pool: 25 on production, can I include that in my database.yml as follows?
development: &default
adapter: postgresql
database: my_app_development
encoding: utf8
host: localhost
min_messages: warning
pool: 2
timeout: 5000
test:
<<: *default
database: my_app_test
-- Can I add this, or will it get overwritten?
production:
<<: *default
pool: 25
Actually, found the answer to exactly my question on the Heroku documentation
https://devcenter.heroku.com/changelog-items/426
Looks like whatever options you set will be merged in and preserved, so I can indeed set connection pool in my database.yml
i'm new to ruby on rails, i'm trying to run an app with postgres database, but it didn't work, i have tried to search lots of information, but i wasn't useful, Someone posted the exactly same question here Problems with rails server , I tried to use command rails new blog it created an app with sqlite3 database, it works fine, but i created app with command rails new myapp --database=postgresql after that i visit localhost page, it ocurred the exactly same error
could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Can anyone help? it would be very much appreciated.
database.yml file information:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
<<: *default
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
Delete this file:
/usr/local/var/postgres/postmaster.pid
Original Answer: psql: could not connect to server: No such file or directory (Mac OS X)