Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
78bb800b
Commit
78bb800b
authored
20 years ago
by
Bruce Momjian
Browse files
Options
Downloads
Patches
Plain Diff
Update initdb locale/encoding documentation description. Backpatch to
8.0.X.
parent
1808ce78
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/src/sgml/ref/initdb.sgml
+36
-34
36 additions, 34 deletions
doc/src/sgml/ref/initdb.sgml
with
36 additions
and
34 deletions
doc/src/sgml/ref/initdb.sgml
+
36
−
34
View file @
78bb800b
<!--
$PostgreSQL: pgsql/doc/src/sgml/ref/initdb.sgml,v 1.3
3
2005/0
1/04 00:05:45
momjian Exp $
$PostgreSQL: pgsql/doc/src/sgml/ref/initdb.sgml,v 1.3
4
2005/0
2/22 02:54:19
momjian Exp $
PostgreSQL documentation
-->
...
...
@@ -43,34 +43,23 @@ PostgreSQL documentation
</para>
<para>
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 <literal>template1</literal>
database. When you later create a new database, everything in the
<literal>template1</literal> database is copied.
It contains catalog tables filled in for things like the
built-in types.
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 <literal>template1</literal>
database. When you later create a new database, everything in the
<literal>template1</literal> database is copied. It contains catalog
tables containing things like built-in data types.
</para>
<para>
<command>initdb</command> initializes the database cluster's default
locale and character set encoding. Some locale categories are fixed
for the lifetime of the cluster. There is also a performance impact
in using locales other than <literal>C</> or <literal>POSIX</>.
Therefore it is important to make the right choice when running
<command>initdb</command>. Other locale categories can be changed
later when the server is started. <command>initdb</command> will
write those locale settings into the
<filename>postgresql.conf</filename> configuration file so they are
the default, but they can be changed by editing that file. To set the
locale that <command>initdb</command> uses, see the description of
the <option>--locale</option> option. The character set encoding can
be set separately for each database as it is created.
<command>initdb</command> determines the encoding for the
<literal>template1</literal> database, which will serve as the
default for all other databases. To alter the default encoding use
the <option>--encoding</option> option.
Although <command>initdb</command> 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
<command>chown</command> to assign ownership of that directory to the
database user account, then <command>su</command> to become the
database user to run <command>initdb</command>.
</para>
<para>
...
...
@@ -83,15 +72,28 @@ PostgreSQL documentation
</para>
<para>
Although <command>initdb</command> will attempt to create the
specified data directory, often it won't have permission to do so,
since the parent of the desired data directory is often a root-owned
directory. To set up an arrangement like this, create an empty data
directory as root, then use <command>chown</command> to hand over
ownership of that directory to the database user account, then
<command>su</command> to become the database user, and
finally run <command>initdb</command> as the database user.
<command>initdb</command> initializes the database cluster's default
locale and character set encoding. The collation order
(<literal>LC_COLLATE</>) and character set classes
(<literal>LC_CTYPE</>, e.g. upper, lower, digit) are fixed for all
databases and can not be changed. Collation orders other than
<literal>C</> or <literal>POSIX</> also have a performance penalty.
For these reasons it is important to choose the right locale when
running <command>initdb</command>. The remaining locale categories
can be changed later when the server is started. All server locale
values (<literal>lc_*</>) can be displayed via <command>SHOW ALL</>.
More details can be found in <xref linkend="locale">.
</para>
<para>
The character set encoding can be set separately for a database when
it is created. <command>initdb</command> determines the encoding for
the <literal>template1</literal> database, which will serve as the
default for all other databases. To alter the default encoding use
the <option>--encoding</option> option. More details can be found in
<xref linkend="multibyte">.
</para>
</refsect1>
<refsect1>
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment