start.sgml 12.0 KB
Newer Older
1
<Chapter Id="start">
2 3 4 5 6 7 8 9 10 11 12 13 14 15
<Title>Getting Started</Title>

<Abstract>
<Para>
How to begin work with <ProductName>Postgres</ProductName> for a new user.
</Para>
</Abstract>

<Para>
     Some  of the steps required to use <ProductName>Postgres</ProductName>
     can be performed by any Postgres user, and some must be done by
     the site database administrator.  This site administrator 
     is the person who installed the  software,  created
     the  database  directories  and  started the <Application>postmaster</Application>
16
     process.  This person does not  have  to  be  the  Unix
17 18 19 20 21 22 23 24 25 26 27 28 29
     superuser (<Quote>root</Quote>)
 or the computer system administrator; a person can install and use
<ProductName>Postgres</ProductName> without any special accounts or privileges.
</Para>

<Para>
If you are installing <ProductName>Postgres</ProductName> yourself, then
refer to the Administrator's Guide for instructions on installation, and return
to this guide when the installation is complete.
</Para>

<Para>
     Throughout this manual, any examples  that  begin  with
30
     the  character  <Quote>%</Quote> are commands that should be typed
31
     at the Unix shell prompt.  Examples that begin with the
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
     character <Quote>*</Quote> are commands in the Postgres query 
     language, Postgres <Acronym>SQL</Acronym>.
</Para>

<Sect1>
<Title>Setting Up Your Environment</Title>

<Para>
     This section discusses how to set up
     your own environment  so  that  you  can  use  frontend
     applications.  We assume <ProductName>Postgres</ProductName> has already been 
     successfully installed and started; refer to the Administrator's Guide
and the installation  notes
     for how to install Postgres.
</Para>

<Para>
<ProductName>Postgres</ProductName> is a client/server application. As a user,
you only need access to the client portions of the installation (an example
of a client application is the interactive monitor <Application>psql</Application>).
     For simplicity,
     we will assume that <ProductName>Postgres</ProductName> has been installed in  the
     directory  <FileName>/usr/local/pgsql</FileName>.   Therefore, wherever
     you see the directory <FileName>/usr/local/pgsql</FileName> you  should
     substitute  the name of the directory where <ProductName>Postgres</ProductName> is
     actually installed.
     All <ProductName>Postgres</ProductName> commands are installed  in  the  directory
     <FileName>/usr/local/pgsql/bin</FileName>.   Therefore,  you should add
     this directory to your shell command path.  If you  use
     a variant of the Berkeley C shell, such as csh or tcsh,
     you would add
<ProgramListing>
% set path = ( /usr/local/pgsql/bin path )
</ProgramListing>
     in the <FileName>.login</FileName> file in your home directory.  If you  use
     a  variant  of  the  Bourne  shell, such as sh, ksh, or
     bash, then you would add
<ProgramListing>
70
% PATH=/usr/local/pgsql/bin:$PATH
71 72 73 74 75 76 77 78 79
% export PATH
</ProgramListing>
     to the .profile file in your home directory.
     From now on, we will assume that  you  have  added  the
     <ProductName>Postgres</ProductName>  bin  directory to your path.  In addition, we
     will make frequent reference to <Quote>setting a shell  
     variable</Quote>  or  <Quote>setting an environment variable</Quote> throughout
     this document.  If you did  not  fully  understand  the
     last  paragraph  on  modifying  your  search  path, you
80
     should consult the Unix manual pages that describe your
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
     shell before going any further.
</Para>

<Para>
If your site administrator has not set things up in the
default  way,  you may have some more work to do.  For example, if the database
 server machine is a remote machine, you
will need to set the <Acronym>PGHOST</Acronym> environment variable to the name
of the database server machine.   The  environment  variable
<Acronym>PGPORT</Acronym> may also have to be set.  The bottom line is this: if
you try to start an application  program  and  it  complains
that it cannot connect to the <Application>postmaster</Application>,
 you should immediately consult your site administrator to make sure that your
environment is properly set up.
</Para>

</Sect1>

<Sect1>
<Title>Starting the Interactive Monitor (psql)</Title>

<Para>
     Assuming that  your  site  administrator  has  properly
     started  the  <Application>postmaster</Application>  process and authorized you to
     use the database, you (as a user) may begin to start up
     applications.   As previously mentioned, you should add
     <FileName>/usr/local/pgsql/bin</FileName> to your  shell  search  path.
     In  most  cases,  this  is all you should have to do in
     terms of preparation.
</Para>

<Para>
As of <ProductName>Postgres</ProductName> v6.3, two different styles of connections
are supported. The site administrator will have chosen to allow TCP/IP network connections
or will have restricted database access to local (same-machine) socket connections only.
These choices become significant if you encounter problems in connecting to a database.
</Para>

<Para>
     If  you get the following error message from a <ProductName>Postgres</ProductName>
     command (such as <Application>psql</Application> or <Application>createdb</Application>):

<ProgramListing>
% psql template1
Connection to database 'postgres' failed.
connectDB() failed: Is the postmaster running and accepting connections
    at 'UNIX Socket' on port '5432'?
</ProgramListing>

or

<ProgramListing>
% psql -h localhost template1
Connection to database 'postgres' failed.
connectDB() failed: Is the postmaster running and accepting TCP/IP
    (with -i) connections at 'localhost' on port '5432'?
</ProgramListing>

     it is usually because (1) the <Application>postmaster</Application>  is  not  running,
 or (2) you are attempting to connect to the wrong server host.
     If you get the following error message:

<ProgramListing>
FATAL 1:Feb 17 23:19:55:process userid (2360) != database owner (268)
</ProgramListing>

     it means that the site administrator started the  <Application>postmaster</Application>
  as  the  wrong user.  Tell him to restart it as
     the <ProductName>Postgres</ProductName> superuser.
</Para>
</Sect1>

<Sect1>
<Title>Managing a Database</Title>

<Para>
     Now that <ProductName>Postgres</ProductName> is up and running we can create  some
     databases  to  experiment  with.  Here, we describe the
     basic commands for managing a database.
</Para>

<Para>
Most <ProductName>Postgres</ProductName>
applications assume that the database name, if not specified, is the same as the name on your computer
account.
</Para>

<Para>
If your database administrator has set up your account without database creation privileges,
then she should have told you what the name of your database is. If this is the case, then you
can skip the sections on creating and destroying databases.
</Para>

<Sect2>
<Title>Creating a Database</Title>

<Para>
     Let's say you want to create  a  database  named  <Database>mydb</Database>.
     You can do this with the following command:
<ProgramListing>
% createdb mydb
</ProgramListing>
</Para>

<Para>
If you do not have the privileges required to create a database, you will see
the following:
<ProgramListing>
% createdb mydb
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
</ProgramListing>
</Para>

<Para>
     <ProductName>Postgres</ProductName>  allows  you to create any number of databases
     at a  given  site  and  you  automatically  become  the
     database  administrator  of  the database you just created.  Database names must  have  an  alphabetic  first
     character and are limited to 32 characters in length.
     Not  every  user has authorization to become a database
     administrator.  If <ProductName>Postgres</ProductName> refuses to create databases
     for you, then the site administrator needs to grant you
     permission to  create  databases.   Consult  your  site
     administrator if this occurs.
</Para>
</Sect2>

<Sect2>
<Title>Accessing a Database</Title>

<Para>
     Once you have constructed a database, you can access it
     by:

<ItemizedList Mark="bullet" Spacing="compact">
<ListItem>
<Para>
T
Thomas G. Lockhart 已提交
218 219
running the <ProductName>Postgres</ProductName>  terminal  monitor  programs
 (e.g. <Application>psql</Application>) which allows you to interactively
220 221 222 223 224 225 226 227 228
        enter, edit, and execute <Acronym>SQL</Acronym> commands.
</Para>
</ListItem>
<ListItem>
<Para>
      writing a <Acronym>C</Acronym>  program  using  the  LIBPQ  subroutine
        library.   This  allows  you  to submit <Acronym>SQL</Acronym> commands
        from <Acronym>C</Acronym> and get answers and status messages  back  to
        your  program.   This interface is discussed further
229
        in <citetitle>The PostgreSQL Programmer's Guide</citetitle>.
230 231 232 233
</Para>
</ListItem>
</ItemizedList>

T
Thomas G. Lockhart 已提交
234 235
You might want to start up <Application>psql</Application>, 
to try out the examples in this manual.
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276
 It can be activated for the <Database>mydb</Database>
     database by typing the command:
<ProgramListing>
% psql mydb
</ProgramListing>

     You will be greeted with the following message:
<ProgramListing>
Welcome to the POSTGRESQL interactive sql monitor:
  Please read the file COPYRIGHT for copyright terms of POSTGRESQL

   type \? for help on slash commands
   type \q to quit
   type \g or terminate with semicolon to execute query
 You are currently connected to the database: template1

mydb=>
</ProgramListing>
</Para>

<Para>
This prompt indicates that the terminal monitor is listening
  to you and that you can type <Acronym>SQL</Acronym> queries into a
     workspace maintained by the terminal monitor.
     The <Application>psql</Application> program responds to escape  codes  that  begin
     with  the  backslash  character, <Quote>\</Quote>  For example, you
     can get help on the syntax of various
 <ProductName>Postgres</ProductName> <Acronym>SQL</Acronym> commands by typing:
<ProgramListing>
mydb=> \h
</ProgramListing>

     Once  you  have finished entering your queries into the
     workspace, you can pass the contents of  the  workspace
     to the <ProductName>Postgres</ProductName> server by typing:
<ProgramListing>
mydb=> \g
</ProgramListing>

     This  tells  the  server  to process the query.  If you
     terminate your query with a semicolon, the  <Quote>\g</Quote> is  not
277 278
     necessary.
     <Application>psql</Application> will automatically process semicolon terminated queries.
279 280 281 282 283 284
     To read queries from a file,  say  myFile,  instead  of
     entering them interactively, type:
<ProgramListing>
mydb=> \i fileName
</ProgramListing>

285
     To get out of <Application>psql</Application> and return to Unix, type
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305
<ProgramListing>
mydb=> \q
</ProgramListing>

     and  <Application>psql</Application>  will  quit  and  return  you to your command
     shell. (For more escape codes, type <Command>\h</Command> at  the  monitor
     prompt.)
     White  space  (i.e.,  spaces, tabs and newlines) may be
     used freely in <Acronym>SQL</Acronym> queries.  Single-line comments  are  denoted  by
     <Quote>--</Quote>.   Everything  after the dashes up to the end of the
     line is ignored. Multiple-line comments, and comments within a line,
     are denoted by <Quote>/* ... */</Quote>
</Para>
</Sect2>
     
<Sect2>
<Title>Destroying a Database</Title>

<Para>
     If you are the database administrator for the  database
306
     <Database>mydb</Database>,  you can destroy it using the following Unix command:
307 308 309
<ProgramListing>
% destroydb mydb
</ProgramListing>
310
     This action physically removes all of  the  Unix  files
311 312 313 314 315 316 317
     associated  with  the database and cannot be undone, so
     this should only be done with a  great  deal  of  forethought.
</Para>
</Sect2>
</Sect1>

</Chapter>
318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:"./reference.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:"/usr/lib/sgml/CATALOG"
sgml-local-ecat-files:nil
End:
-->