initdb man page on Debian

Man page or keyword search:  
man Server   8174 pages
apropos Keyword Search (all sections)
Output format
Debian logo
[printable version]

INITDB(1)		PostgreSQL Server Applications		     INITDB(1)

NAME
       initdb - create a new PostgreSQL database cluster

SYNOPSIS
       initdb [ option... ]   [ --pgdata  ]  [ -D  ] directory

DESCRIPTION
       initdb creates a new PostgreSQL database cluster. A database cluster is
       a collection of databases that are managed by a single server instance.

       Creating a database cluster consists of	creating  the  directories  in
       which the database data will live, generating the shared catalog tables
       (tables that belong to the whole cluster rather than to any  particular
       database),  and creating the template1 and postgres databases. When you
       later create a new database, everything in the  template1  database  is
       copied.	(Therefore,  anything  installed in template1 is automatically
       copied into each database created later.)  The postgres database	 is  a
       default	database  meant	 for  use  by users, utilities and third party
       applications.

       Although initdb 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 chown to assign ownership of that
       directory to the database user account, then su to become the  database
       user to run initdb.

       initdb  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  initdb creates.  Since the server cannot be run as root, you must
       not run initdb as root either. (It will in fact refuse to do so.)

       initdb initializes the database cluster's default locale and  character
       set  encoding. The character set encoding, collation order (LC_COLLATE)
       and character set classes (LC_CTYPE, e.g. upper, lower, digit)  can  be
       set  separately	for  a	database when it is created. initdb determines
       those settings for the template1 database,  which  will	serve  as  the
       default for all other databases.

       To  alter the default collation order or character set classes, use the
       --lc-collate and --lc-ctype options.  Collation orders other than C  or
       POSIX  also  have a performance penalty. For these reasons it is impor‐
       tant to choose the right locale when running initdb.

       The remaining locale categories can be changed later when the server is
       started.	 You  can  also use --locale to set the default for all locale
       categories, including collation order and character  set	 classes.  All
       server  locale  values  (lc_*)  can  be	displayed  via SHOW ALL.  More
       details can be found in in the documentation.

       To alter the default encoding, use the --encoding.  More details can be
       found in in the documentation.

OPTIONS
       -A authmethod

       --auth=authmethod
	      This  option specifies the authentication method for local users
	      used in pg_hba.conf. Do not use trust unless you trust all local
	      users on your system. Trust is the default for ease of installa‐
	      tion.

       -D directory

       --pgdata=directory
	      This option specifies the directory where the  database  cluster
	      should  be  stored.  This	 is  the  only information required by
	      initdb, but you can avoid writing it by setting the PGDATA envi‐
	      ronment  variable,  which	 can  be convenient since the database
	      server (postgres) can find the database directory later  by  the
	      same variable.

       -E encoding

       --encoding=encoding
	      Selects the encoding of the template database. This will also be
	      the default encoding of any database you	create	later,	unless
	      you  override  it there. The default is derived from the locale,
	      or SQL_ASCII if that does not work. The character sets supported
	      by the PostgreSQL server are described in in the documentation.

       --locale=locale
	      Sets the default locale for the database cluster. If this option
	      is not specified, the locale is inherited from  the  environment
	      that initdb runs in. Locale support is described in in the docu‐
	      mentation.

       --lc-collate=locale

       --lc-ctype=locale

       --lc-messages=locale

       --lc-monetary=locale

       --lc-numeric=locale

       --lc-time=locale
	      Like --locale, but only sets the locale in the  specified	 cate‐
	      gory.

       --no-locale
	      Equivalent to --locale=C.

       -X directory

       --xlogdir=directory
	      This  option  specifies  the directory where the transaction log
	      should be stored.

       -U username

       --username=username
	      Selects the user name of the database superuser.	This  defaults
	      to  the  name of the effective user running initdb. It is really
	      not important what the superuser's name is, but one might choose
	      to  keep the customary name postgres, even if the operating sys‐
	      tem user's name is different.

       -W

       --pwprompt
	      Makes initdb prompt for a password to give  the  database	 supe‐
	      ruser.  If you don't plan on using password authentication, this
	      is not important. Otherwise you won't be able  to	 use  password
	      authentication until you have a password set up.

       --pwfile=filename
	      Makes initdb read the database superuser's password from a file.
	      The first line of the file is taken as the password.

       --text-search-config=CFG
	      Sets   the   default    text    search	configuration.	   See
	      default_text_search_config for further information.

       Other, less commonly used, parameters are also available:

       -d

       --debug
	      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 initdb uses to create the cata‐
	      log  tables.  This  option  generates  a	tremendous  amount  of
	      extremely boring output.

       -L directory
	      Specifies where initdb 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.

       -n

       --noclean
	      By  default,  when  initdb 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 use‐
	      ful for debugging.

ENVIRONMENT
       PGDATA Specifies	 the  directory	 where	the  database cluster is to be
	      stored; can be overridden using the -D option.

       This utility, like most other PostgreSQL utilities, also uses the envi‐
       ronment variables supported by libpq (see in the documentation).

SEE ALSO
       postgres(1)

Application			  2013-04-02			     INITDB(1)
[top]

List of man pages available for Debian

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net