1CREATEDB(1) PostgreSQL 12.6 Documentation CREATEDB(1)
2
3
4
6 createdb - create a new PostgreSQL database
7
9 createdb [connection-option...] [option...] [dbname [description]]
10
12 createdb creates a new PostgreSQL database.
13
14 Normally, the database user who executes this command becomes the owner
15 of the new database. However, a different owner can be specified via
16 the -O option, if the executing user has appropriate privileges.
17
18 createdb is a wrapper around the SQL command CREATE DATABASE
19 (CREATE_DATABASE(7)). There is no effective difference between creating
20 databases via this utility and via other methods for accessing the
21 server.
22
24 createdb accepts the following command-line arguments:
25
26 dbname
27 Specifies the name of the database to be created. The name must be
28 unique among all PostgreSQL databases in this cluster. The default
29 is to create a database with the same name as the current system
30 user.
31
32 description
33 Specifies a comment to be associated with the newly created
34 database.
35
36 -D tablespace
37 --tablespace=tablespace
38 Specifies the default tablespace for the database. (This name is
39 processed as a double-quoted identifier.)
40
41 -e
42 --echo
43 Echo the commands that createdb generates and sends to the server.
44
45 -E encoding
46 --encoding=encoding
47 Specifies the character encoding scheme to be used in this
48 database. The character sets supported by the PostgreSQL server are
49 described in Section 23.3.1.
50
51 -l locale
52 --locale=locale
53 Specifies the locale to be used in this database. This is
54 equivalent to specifying both --lc-collate and --lc-ctype.
55
56 --lc-collate=locale
57 Specifies the LC_COLLATE setting to be used in this database.
58
59 --lc-ctype=locale
60 Specifies the LC_CTYPE setting to be used in this database.
61
62 -O owner
63 --owner=owner
64 Specifies the database user who will own the new database. (This
65 name is processed as a double-quoted identifier.)
66
67 -T template
68 --template=template
69 Specifies the template database from which to build this database.
70 (This name is processed as a double-quoted identifier.)
71
72 -V
73 --version
74 Print the createdb version and exit.
75
76 -?
77 --help
78 Show help about createdb command line arguments, and exit.
79
80 The options -D, -l, -E, -O, and -T correspond to options of the
81 underlying SQL command CREATE DATABASE (CREATE_DATABASE(7)); see there
82 for more information about them.
83
84 createdb also accepts the following command-line arguments for
85 connection parameters:
86
87 -h host
88 --host=host
89 Specifies the host name of the machine on which the server is
90 running. If the value begins with a slash, it is used as the
91 directory for the Unix domain socket.
92
93 -p port
94 --port=port
95 Specifies the TCP port or the local Unix domain socket file
96 extension on which the server is listening for connections.
97
98 -U username
99 --username=username
100 User name to connect as.
101
102 -w
103 --no-password
104 Never issue a password prompt. If the server requires password
105 authentication and a password is not available by other means such
106 as a .pgpass file, the connection attempt will fail. This option
107 can be useful in batch jobs and scripts where no user is present to
108 enter a password.
109
110 -W
111 --password
112 Force createdb to prompt for a password before connecting to a
113 database.
114
115 This option is never essential, since createdb will automatically
116 prompt for a password if the server demands password
117 authentication. However, createdb will waste a connection attempt
118 finding out that the server wants a password. In some cases it is
119 worth typing -W to avoid the extra connection attempt.
120
121 --maintenance-db=dbname
122 Specifies the name of the database to connect to when creating the
123 new database. If not specified, the postgres database will be used;
124 if that does not exist (or if it is the name of the new database
125 being created), template1 will be used. This can be a connection
126 string. If so, connection string parameters will override any
127 conflicting command line options.
128
130 PGDATABASE
131 If set, the name of the database to create, unless overridden on
132 the command line.
133
134 PGHOST
135 PGPORT
136 PGUSER
137 Default connection parameters. PGUSER also determines the name of
138 the database to create, if it is not specified on the command line
139 or by PGDATABASE.
140
141 PG_COLOR
142 Specifies whether to use color in diagnostic messages. Possible
143 values are always, auto and never.
144
145 This utility, like most other PostgreSQL utilities, also uses the
146 environment variables supported by libpq (see Section 33.14).
147
149 In case of difficulty, see CREATE DATABASE (CREATE_DATABASE(7)) and
150 psql(1) for discussions of potential problems and error messages. The
151 database server must be running at the targeted host. Also, any default
152 connection settings and environment variables used by the libpq
153 front-end library will apply.
154
156 To create the database demo using the default database server:
157
158 $ createdb demo
159
160 To create the database demo using the server on host eden, port 5000,
161 using the template0 template database, here is the command-line command
162 and the underlying SQL command:
163
164 $ createdb -p 5000 -h eden -T template0 -e demo
165 CREATE DATABASE demo TEMPLATE template0;
166
168 dropdb(1), CREATE DATABASE (CREATE_DATABASE(7))
169
170
171
172PostgreSQL 12.6 2021 CREATEDB(1)