postgresql installation : initdb data directory not empty?
I am trying to create the postgresql database.
When I install PostgreSQL, I gave this command:
sudo yum install postgresql postgresql-server
and later I modified the config file:
sudo vim /var/lib/pgsql/data/pg_hba.conf
and modified as
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all all 0.0.0.0/0 md5
While I am trying to startup the postgresql service:
sudo service postgresql initdb
> Data directory is not empty! [FAILED]
sudo chkconfig postgresql on
sudo service postgresql start
Starting postgresql service: [ OK ]
What is caused these errors and how do I fix them?
Initdb should only be run once. It will create the directory where you'll keep the config files and (usually) the actual database. You've obviously already done that already; otherwrise there wouldn't be any pg_hba.conf for you to edit.
So, just don't run postgresql initdb
again, unless you are doing a complete reinstall.
From here:
If you're completely wiping & reinstalling a Postgres DB, when running initdb
like:
service postgresql-9.2 initdb -E 'UTF8' --pgdata="/foo/bar/"
you can encounter this service error:
Data directory is not empty! [FAILED]
To fix it (and this is the nuclear option -- all db data is wiped!)
On Amazon Linux (2014-x):
rm -rf /var/lib/pgsql9/data
On CentOS (6.x)
rm -rf /var/lib/pgsql/9.2/data
Now try the initdb
command again and it should work this time:
service postgresql-9.2 initdb