summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/man1/initdb.1
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/man1/initdb.1')
-rw-r--r--doc/src/sgml/man1/initdb.1460
1 files changed, 460 insertions, 0 deletions
diff --git a/doc/src/sgml/man1/initdb.1 b/doc/src/sgml/man1/initdb.1
new file mode 100644
index 0000000..6e2d62a
--- /dev/null
+++ b/doc/src/sgml/man1/initdb.1
@@ -0,0 +1,460 @@
+'\" t
+.\" Title: initdb
+.\" Author: The PostgreSQL Global Development Group
+.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
+.\" Date: 2024
+.\" Manual: PostgreSQL 16.2 Documentation
+.\" Source: PostgreSQL 16.2
+.\" Language: English
+.\"
+.TH "INITDB" "1" "2024" "PostgreSQL 16.2" "PostgreSQL 16.2 Documentation"
+.\" -----------------------------------------------------------------
+.\" * Define some portability stuff
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" http://bugs.debian.org/507673
+.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "NAME"
+initdb \- create a new PostgreSQL database cluster
+.SH "SYNOPSIS"
+.HP \w'\fBinitdb\fR\ 'u
+\fBinitdb\fR [\fIoption\fR...] [\fB\-\-pgdata\fR | \fB\-D\fR]\fI directory\fR
+.SH "DESCRIPTION"
+.PP
+\fBinitdb\fR
+creates a new
+PostgreSQL
+database cluster\&.
+.PP
+Creating a database cluster consists of creating the
+directories
+in which the cluster data will live, generating the shared catalog tables (tables that belong to the whole cluster rather than to any particular database), and creating the
+postgres,
+template1, and
+template0
+databases\&. The
+postgres
+database is a default database meant for use by users, utilities and third party applications\&.
+template1
+and
+template0
+are meant as source databases to be copied by later
+\fBCREATE DATABASE\fR
+commands\&.
+template0
+should never be modified, but you can add objects to
+template1, which by default will be copied into databases created later\&. See
+Section\ \&23.3
+for more details\&.
+.PP
+Although
+\fBinitdb\fR
+will attempt to create the specified data directory, it might not have permission if the parent directory of the desired data directory is root\-owned\&. To initialize in such a setup, create an empty data directory as root, then use
+\fBchown\fR
+to assign ownership of that directory to the database user account, then
+\fBsu\fR
+to become the database user to run
+\fBinitdb\fR\&.
+.PP
+\fBinitdb\fR
+must be run as the user that will own the server process, because the server needs to have access to the files and directories that
+\fBinitdb\fR
+creates\&. Since the server cannot be run as root, you must not run
+\fBinitdb\fR
+as root either\&. (It will in fact refuse to do so\&.)
+.PP
+For security reasons the new cluster created by
+\fBinitdb\fR
+will only be accessible by the cluster owner by default\&. The
+\fB\-\-allow\-group\-access\fR
+option allows any user in the same group as the cluster owner to read files in the cluster\&. This is useful for performing backups as a non\-privileged user\&.
+.PP
+\fBinitdb\fR
+initializes the database cluster\*(Aqs default locale and character set encoding\&. These can also be set separately for each database when it is created\&.
+\fBinitdb\fR
+determines those settings for the template databases, which will serve as the default for all other databases\&.
+.PP
+By default,
+\fBinitdb\fR
+uses the locale provider
+libc
+(see
+Section\ \&24.1.4)\&. The
+libc
+locale provider takes the locale settings from the environment, and determines the encoding from the locale settings\&.
+.PP
+To choose a different locale for the cluster, use the option
+\fB\-\-locale\fR\&. There are also individual options
+\fB\-\-lc\-*\fR
+and
+\fB\-\-icu\-locale\fR
+(see below) to set values for the individual locale categories\&. Note that inconsistent settings for different locale categories can give nonsensical results, so this should be used with care\&.
+.PP
+Alternatively,
+\fBinitdb\fR
+can use the ICU library to provide locale services by specifying
+\-\-locale\-provider=icu\&. The server must be built with ICU support\&. To choose the specific ICU locale ID to apply, use the option
+\fB\-\-icu\-locale\fR\&. Note that for implementation reasons and to support legacy code,
+\fBinitdb\fR
+will still select and initialize libc locale settings when the ICU locale provider is used\&.
+.PP
+When
+\fBinitdb\fR
+runs, it will print out the locale settings it has chosen\&. If you have complex requirements or specified multiple options, it is advisable to check that the result matches what was intended\&.
+.PP
+More details about locale settings can be found in
+Section\ \&24.1\&.
+.PP
+To alter the default encoding, use the
+\fB\-\-encoding\fR\&. More details can be found in
+Section\ \&24.3\&.
+.SH "OPTIONS"
+.PP
+.PP
+\fB\-A \fR\fB\fIauthmethod\fR\fR
+.br
+\fB\-\-auth=\fR\fB\fIauthmethod\fR\fR
+.RS 4
+This option specifies the default authentication method for local users used in
+pg_hba\&.conf
+(host
+and
+local
+lines)\&. See
+Section\ \&21.1
+for an overview of valid values\&.
+.sp
+\fBinitdb\fR
+will prepopulate
+pg_hba\&.conf
+entries using the specified authentication method for non\-replication as well as replication connections\&.
+.sp
+Do not use
+trust
+unless you trust all local users on your system\&.
+trust
+is the default for ease of installation\&.
+.RE
+.PP
+\fB\-\-auth\-host=\fR\fB\fIauthmethod\fR\fR
+.RS 4
+This option specifies the authentication method for local users via TCP/IP connections used in
+pg_hba\&.conf
+(host
+lines)\&.
+.RE
+.PP
+\fB\-\-auth\-local=\fR\fB\fIauthmethod\fR\fR
+.RS 4
+This option specifies the authentication method for local users via Unix\-domain socket connections used in
+pg_hba\&.conf
+(local
+lines)\&.
+.RE
+.PP
+\fB\-D \fR\fB\fIdirectory\fR\fR
+.br
+\fB\-\-pgdata=\fR\fB\fIdirectory\fR\fR
+.RS 4
+This option specifies the directory where the database cluster should be stored\&. This is the only information required by
+\fBinitdb\fR, but you can avoid writing it by setting the
+\fBPGDATA\fR
+environment variable, which can be convenient since the database server (\fBpostgres\fR) can find the data directory later by the same variable\&.
+.RE
+.PP
+\fB\-E \fR\fB\fIencoding\fR\fR
+.br
+\fB\-\-encoding=\fR\fB\fIencoding\fR\fR
+.RS 4
+Selects the encoding of the template databases\&. This will also be the default encoding of any database you create later, unless you override it then\&. The character sets supported by the
+PostgreSQL
+server are described in
+Section\ \&24.3.1\&.
+.sp
+By default, the template database encoding is derived from the locale\&. If
+\fB\-\-no\-locale\fR
+is specified (or equivalently, if the locale is
+C
+or
+POSIX), then the default is
+UTF8
+for the ICU provider and
+SQL_ASCII
+for the
+libc
+provider\&.
+.RE
+.PP
+\fB\-g\fR
+.br
+\fB\-\-allow\-group\-access\fR
+.RS 4
+Allows users in the same group as the cluster owner to read all cluster files created by
+\fBinitdb\fR\&. This option is ignored on
+Windows
+as it does not support
+POSIX\-style group permissions\&.
+.RE
+.PP
+\fB\-\-icu\-locale=\fR\fB\fIlocale\fR\fR
+.RS 4
+Specifies the ICU locale when the ICU provider is used\&. Locale support is described in
+Section\ \&24.1\&.
+.RE
+.PP
+\fB\-\-icu\-rules=\fR\fB\fIrules\fR\fR
+.RS 4
+Specifies additional collation rules to customize the behavior of the default collation\&. This is supported for ICU only\&.
+.RE
+.PP
+\fB\-k\fR
+.br
+\fB\-\-data\-checksums\fR
+.RS 4
+Use checksums on data pages to help detect corruption by the I/O system that would otherwise be silent\&. Enabling checksums may incur a noticeable performance penalty\&. If set, checksums are calculated for all objects, in all databases\&. All checksum failures will be reported in the
+pg_stat_database
+view\&. See
+Section\ \&30.2
+for details\&.
+.RE
+.PP
+\fB\-\-locale=\fR\fB\fIlocale\fR\fR
+.RS 4
+Sets the default locale for the database cluster\&. If this option is not specified, the locale is inherited from the environment that
+\fBinitdb\fR
+runs in\&. Locale support is described in
+Section\ \&24.1\&.
+.RE
+.PP
+\fB\-\-lc\-collate=\fR\fB\fIlocale\fR\fR
+.br
+\fB\-\-lc\-ctype=\fR\fB\fIlocale\fR\fR
+.br
+\fB\-\-lc\-messages=\fR\fB\fIlocale\fR\fR
+.br
+\fB\-\-lc\-monetary=\fR\fB\fIlocale\fR\fR
+.br
+\fB\-\-lc\-numeric=\fR\fB\fIlocale\fR\fR
+.br
+\fB\-\-lc\-time=\fR\fB\fIlocale\fR\fR
+.RS 4
+Like
+\fB\-\-locale\fR, but only sets the locale in the specified category\&.
+.RE
+.PP
+\fB\-\-no\-locale\fR
+.RS 4
+Equivalent to
+\fB\-\-locale=C\fR\&.
+.RE
+.PP
+\fB\-\-locale\-provider={\fR\fBlibc\fR\fB|\fR\fBicu\fR\fB}\fR
+.RS 4
+This option sets the locale provider for databases created in the new cluster\&. It can be overridden in the
+\fBCREATE DATABASE\fR
+command when new databases are subsequently created\&. The default is
+libc
+(see
+Section\ \&24.1.4)\&.
+.RE
+.PP
+\fB\-N\fR
+.br
+\fB\-\-no\-sync\fR
+.RS 4
+By default,
+\fBinitdb\fR
+will wait for all files to be written safely to disk\&. This option causes
+\fBinitdb\fR
+to return without waiting, which is faster, but means that a subsequent operating system crash can leave the data directory corrupt\&. Generally, this option is useful for testing, but should not be used when creating a production installation\&.
+.RE
+.PP
+\fB\-\-no\-instructions\fR
+.RS 4
+By default,
+\fBinitdb\fR
+will write instructions for how to start the cluster at the end of its output\&. This option causes those instructions to be left out\&. This is primarily intended for use by tools that wrap
+\fBinitdb\fR
+in platform\-specific behavior, where those instructions are likely to be incorrect\&.
+.RE
+.PP
+\fB\-\-pwfile=\fR\fB\fIfilename\fR\fR
+.RS 4
+Makes
+\fBinitdb\fR
+read the bootstrap superuser\*(Aqs password from a file\&. The first line of the file is taken as the password\&.
+.RE
+.PP
+\fB\-S\fR
+.br
+\fB\-\-sync\-only\fR
+.RS 4
+Safely write all database files to disk and exit\&. This does not perform any of the normal
+initdb
+operations\&. Generally, this option is useful for ensuring reliable recovery after changing
+fsync
+from
+off
+to
+on\&.
+.RE
+.PP
+\fB\-T \fR\fB\fIconfig\fR\fR
+.br
+\fB\-\-text\-search\-config=\fR\fB\fIconfig\fR\fR
+.RS 4
+Sets the default text search configuration\&. See
+default_text_search_config
+for further information\&.
+.RE
+.PP
+\fB\-U \fR\fB\fIusername\fR\fR
+.br
+\fB\-\-username=\fR\fB\fIusername\fR\fR
+.RS 4
+Sets the user name of the
+bootstrap superuser\&. This defaults to the name of the operating\-system user running
+\fBinitdb\fR\&.
+.RE
+.PP
+\fB\-W\fR
+.br
+\fB\-\-pwprompt\fR
+.RS 4
+Makes
+\fBinitdb\fR
+prompt for a password to give the bootstrap superuser\&. If you don\*(Aqt plan on using password authentication, this is not important\&. Otherwise you won\*(Aqt be able to use password authentication until you have a password set up\&.
+.RE
+.PP
+\fB\-X \fR\fB\fIdirectory\fR\fR
+.br
+\fB\-\-waldir=\fR\fB\fIdirectory\fR\fR
+.RS 4
+This option specifies the directory where the write\-ahead log should be stored\&.
+.RE
+.PP
+\fB\-\-wal\-segsize=\fR\fB\fIsize\fR\fR
+.RS 4
+Set the
+WAL segment size, in megabytes\&. This is the size of each individual file in the WAL log\&. The default size is 16 megabytes\&. The value must be a power of 2 between 1 and 1024 (megabytes)\&. This option can only be set during initialization, and cannot be changed later\&.
+.sp
+It may be useful to adjust this size to control the granularity of WAL log shipping or archiving\&. Also, in databases with a high volume of WAL, the sheer number of WAL files per directory can become a performance and management problem\&. Increasing the WAL file size will reduce the number of WAL files\&.
+.RE
+.PP
+Other, less commonly used, options are also available:
+.PP
+\fB\-c \fR\fB\fIname\fR\fR\fB=\fR\fB\fIvalue\fR\fR
+.br
+\fB\-\-set \fR\fB\fIname\fR\fR\fB=\fR\fB\fIvalue\fR\fR
+.RS 4
+Forcibly set the server parameter
+\fIname\fR
+to
+\fIvalue\fR
+during
+\fBinitdb\fR, and also install that setting in the generated
+postgresql\&.conf
+file, so that it will apply during future server runs\&. This option can be given more than once to set several parameters\&. It is primarily useful when the environment is such that the server will not start at all using the default parameters\&.
+.RE
+.PP
+\fB\-d\fR
+.br
+\fB\-\-debug\fR
+.RS 4
+Print debugging output from the bootstrap backend and a few other messages of lesser interest for the general public\&. The bootstrap backend is the program
+\fBinitdb\fR
+uses to create the catalog tables\&. This option generates a tremendous amount of extremely boring output\&.
+.RE
+.PP
+\fB\-\-discard\-caches\fR
+.RS 4
+Run the bootstrap backend with the
+debug_discard_caches=1
+option\&. This takes a very long time and is only of use for deep debugging\&.
+.RE
+.PP
+\fB\-L \fR\fB\fIdirectory\fR\fR
+.RS 4
+Specifies where
+\fBinitdb\fR
+should find its input files to initialize the database cluster\&. This is normally not necessary\&. You will be told if you need to specify their location explicitly\&.
+.RE
+.PP
+\fB\-n\fR
+.br
+\fB\-\-no\-clean\fR
+.RS 4
+By default, when
+\fBinitdb\fR
+determines that an error prevented it from completely creating the database cluster, it removes any files it might have created before discovering that it cannot finish the job\&. This option inhibits tidying\-up and is thus useful for debugging\&.
+.RE
+.PP
+Other options:
+.PP
+\fB\-V\fR
+.br
+\fB\-\-version\fR
+.RS 4
+Print the
+initdb
+version and exit\&.
+.RE
+.PP
+\fB\-?\fR
+.br
+\fB\-\-help\fR
+.RS 4
+Show help about
+initdb
+command line arguments, and exit\&.
+.RE
+.SH "ENVIRONMENT"
+.PP
+\fBPGDATA\fR
+.RS 4
+Specifies the directory where the database cluster is to be stored; can be overridden using the
+\fB\-D\fR
+option\&.
+.RE
+.PP
+\fBPG_COLOR\fR
+.RS 4
+Specifies whether to use color in diagnostic messages\&. Possible values are
+always,
+auto
+and
+never\&.
+.RE
+.PP
+\fBTZ\fR
+.RS 4
+Specifies the default time zone of the created database cluster\&. The value should be a full time zone name (see
+Section\ \&8.5.3)\&.
+.RE
+.PP
+This utility, like most other
+PostgreSQL
+utilities, also uses the environment variables supported by
+libpq
+(see
+Section\ \&34.15)\&.
+.SH "NOTES"
+.PP
+\fBinitdb\fR
+can also be invoked via
+\fBpg_ctl initdb\fR\&.
+.SH "SEE ALSO"
+\fBpg_ctl\fR(1), \fBpostgres\fR(1), Section\ \&21.1