aboutsummaryrefslogtreecommitdiff
path: root/doc/src/sgml/start.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/start.sgml')
-rw-r--r--doc/src/sgml/start.sgml315
1 files changed, 315 insertions, 0 deletions
diff --git a/doc/src/sgml/start.sgml b/doc/src/sgml/start.sgml
new file mode 100644
index 00000000000..bd6dc001607
--- /dev/null
+++ b/doc/src/sgml/start.sgml
@@ -0,0 +1,315 @@
+<Chapter>
+<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>
+ process. This person does not have to be the UNIX
+ 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
+ the character <Quote>&percnt</Quote> are commands that should be typed
+ at the UNIX shell prompt. Examples that begin with the
+ 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>
+% PATH=/usr/local/pgsql/bin PATH
+% 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
+ should consult the UNIX manual pages that describe your
+ 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>
+running the <ProductName>Postgres</ProductName> terminal monitor programs (e.g.
+ <Application>psql</Application>) which allows you to interactively
+ 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
+ in <XRef LinkEnd="PROGRAMMERS-GUIDE">.
+</Para>
+</ListItem>
+</ItemizedList>
+
+You might want to start up <Application>psql</Application>, to try out the examples in this manual.
+ 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
+ necessary. <Application>psql</Application> will automatically process semicolon terminated queries.
+ To read queries from a file, say myFile, instead of
+ entering them interactively, type:
+<ProgramListing>
+mydb=> \i fileName
+</ProgramListing>
+
+ To get out of <Application>psql</Application> and return to UNIX, type
+<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
+ <Database>mydb</Database>, you can destroy it using the following UNIX command:
+<ProgramListing>
+% destroydb mydb
+</ProgramListing>
+ This action physically removes all of the UNIX files
+ associated with the database and cannot be undone, so
+ this should only be done with a great deal of forethought.
+</Para>
+</Sect2>
+</Sect1>
+
+</Chapter>