I moved postgresql's data directory by following the following steps:
- Stop postgres
- cp -a source_data_directory destination_data_directory
- export PGDATA=destination_data_directory
- Changing data directory to destination_data_directory within postgresql.conf
- pg_ctl start
But when I run: "pg_ctl start" I get the following error. Can someone please help me figure out the error.
server starting postgres@Server:/usr/lib/postgresql/9.1/bin$ postgres cannot access the server configuration file "/home/destination_data_directory/postgresql.conf": No such file or directory
1 Answer 1
First make sure the file exists really in that location. Run ls $PGDATA
if there is a mistake in the environment variable you will either see the wrong files or get an error because the path does not exist.
Then make sure the owner of the parent directory /home/destination_data_directory
and all directories and files under match the user you start pg_ctl under. If they are not either use
su postgres_user
to switch to the right user before running pg_ctl or use
chown -R postgres_user /home/destination_data_directory
to change the owner of the directory and everything under it.