It's generally recommendable that the PostgreSQL user own not just the data directory but its parent directory as well, so that this should not be a problem. Of course, this will fail if initdb does not have permissions to write in the parent directory. Initdb will attempt to create the directory you specify if it does not already exist. This may be more intuitive if you are using pg_ctl for starting and stopping the server (see Section 19.3), so that pg_ctl would be the sole command you use for managing the database server instance. Note that you must execute this command while logged into the PostgreSQL user account, which is described in the previous section.Īs an alternative to the -D option, you can set the environment variable PGDATA.Īlternatively, you can run initdb via the pg_ctl program like so: $ pg_ctl -D /usr/local/pgsql/data initdb To initialize a database cluster manually, run initdb and specify the desired file system location of the database cluster with the -D option, for example: $ initdb -D /usr/local/pgsql/data Consult the package-level documentation for details. In that case you should use that script in preference to running initdb directly. If you are using a pre-packaged version of PostgreSQL, it may well have a specific convention for where to place the data directory, and it may also provide a script for creating the data directory. The data directory must be initialized before being used, using the program initdb which is installed with PostgreSQL. There is no default, although locations such as /usr/local/pgsql/data or /var/lib/pgsql/data are popular. It is completely up to you where you choose to store your data. We call this the data directory or data area. In file system terms, a database cluster is a single directory under which all data will be stored. (See Chapter 23 for information about creating new databases within a cluster.) As the names suggest, these will be used as templates for subsequently-created databases they should not be used for actual work. There are two more databases created within each cluster during initialization, named template1 and template0. The database server itself does not require the postgres database to exist, but many external utility programs assume it exists. After initialization, a database cluster will contain a database named postgres, which is meant as a default database for use by utilities, users and third party applications. (The SQL standard uses the term catalog cluster.) A database cluster is a collection of databases that is managed by a single instance of a running database server. File Systemsīefore you can do anything, you must initialize a database storage area on disk.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |