Setting up Postgresql on Linux

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • phil campaigne

    #1

    Setting up Postgresql on Linux

    On Mon, 1 Mar 2004, phil campaigne wrote:

    [color=blue][color=green]
    >> Nigel J. Andrews wrote:
    >>[/color]
    >
    >[color=green][color=darkred]
    >>> >On Mon, 1 Mar 2004, Phil Campaigne wrote:
    >>> >
    >>> >
    >>> >[/color]
    >>
    >>[color=darkred]
    >>>> >>Hello,
    >>>> >>I originally installed postgresql as root user and now I am setting up a
    >>>> >>development environment with cvs and a java ide and tomcat. I have
    >>>> >>everything with the exception of postgresql integreted using a non-root
    >>>> >>user.
    >>>> >>THe process I am using is to logon as postges and start the database
    >>>> >>and do queries from the command line using psql. Then I logoff and logon
    >>>> >>as phil and start tomcat and my java ide.
    >>>> >>
    >>>> >>
    >>>
    >>>
    >>> >
    >>> >I'm a little confused as to what you are trying to accomplish.
    >>> >
    >>> >
    >>> >[/color]
    >>
    >>[color=darkred]
    >>>> >>1.Is there a better way to start the database and the web application?
    >>>> >>
    >>>> >>
    >>>
    >>>
    >>> >
    >>> >Can't you just start postgresql and tomcat?
    >>> >
    >>> >
    >>> >[/color]
    >>
    >>[color=darkred]
    >>>> >>2. During setup of postgresql I chown and ghgrp the /usr/local/pgsql
    >>>> >>directoy tree to postgres?
    >>>> >>
    >>>> >>
    >>>
    >>>
    >>> >
    >>> >A little strange but perfectly acceptable if that's how you want it; I install
    >>> >all software under /usr/local as a special software manager, although I'm not
    >>> >sure if I'd bother chown-ing an existing directory tree to non-root.
    >>> >
    >>> >
    >>> >[/color]
    >>
    >>[color=darkred]
    >>>> >>3.However my development environment(i.e . jdbc connection from my
    >>>> >>application ) doesn't seem to have permission to access to all the files
    >>>> >>it needs in postgres?
    >>>> >>
    >>>> >>
    >>>
    >>>
    >>> >
    >>> >What's the error message? I'm not a jdbc person but I suspect from the
    >>> >preceding comments that you're not running the postmaster or jdbc requires a
    >>> >tcp connection and you haven't configured postgresql to allow that.
    >>> >
    >>> >
    >>> >[/color]
    >>
    >>[color=darkred]
    >>>> >>4. Is is best to install postgresql as user "phil" in order to gain
    >>>> >>access for my integrated develoment environment?
    >>>> >>
    >>>> >>
    >>>
    >>>
    >>> >
    >>> >You can install postgresql as whatever user you want, all it requires is that
    >>> >it runs as a non-root user, and has the proper ownership etc on it's data
    >>> >directory.
    >>> >
    >>> >First, I would do a: ps axu | grep post
    >>> >and see if the postmaster is running. If not nad this is not supposed to run as
    >>> >a normal service use:
    >>> >
    >>> >pg_ctl -l /path/to/a/logfile \
    >>> > -D /path/to/data/directory/initialised/with/initdb \
    >>> > start
    >>> >
    >>> >Start Tomcat. If after doing whatever to setup and use jdbc to access your
    >>> >database (for testing you may want to createdb testdb) you still don't get any
    >>> >connection set tcpip_socket to true in postgres.conf in the data directory and
    >>> >stop and start postgresql using pg_ctl. Also look in the Tomcat logs and in
    >>> >/path/to/a/logfile. While editing postgres.conf you may also want to look at
    >>> >the log_ settings and enable a few to see what is happening in more detail.
    >>> >
    >>> >The postgresql documentation is at http://www.postgresql.org/doc/ and
    >>> >unfortunatel y I can't be more specific with urls since the domain falls into to
    >>> >large IP block I block completely due to the excessive number of speculative
    >>> >probes of my systems (not postgresql.org addresses I hasten to add). In deed,
    >>> >this email will probably not reach the list, I wish I know what causes the
    >>> >switch from that working to not working.
    >>> >
    >>> >
    >>> >
    >>> >[/color]
    >>
    >>
    >> Hi Nigel,
    >> I have had a devil oaf a time with file permissions. I don't think I
    >> know how to set them up for application that have been installed by root
    >> user. Here's what I have done to make things work for user postgres:
    >> change in /usr/local/pgsql/data/postgresql.conf
    >> #tcpip_socket = true
    >>
    >> LD_LIBRARY_PATH =/usr/local/pgsql/lib
    >> export LD_LIBRARY_PATH
    >>
    >> PATH=/usr/local/pgsql/bin:$PATH
    >> export PATH
    >>
    >> touch /tmp/postgresql.log
    >> set permissions on /tmp/postgresql.log to postgres
    >>
    >> mkdir /usr/local/pgsql/data
    >> chown -R postgres:postgr es /usr/local/pgsql/data
    >> chown -R postgres:postgr es /usr/local/pgsql/lib
    >> su - postgres
    >> /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
    >>
    >> pg_ctl start -D /usr/local/pgsql/data -o "-i" -l /tmp/postgresql.log
    >>
    >> /usr/local/pgsql/bin/createdb -h localhost -U postgres hardwoodthunder
    >>
    >> psql -h localhost -U postgres hardwoodthunder
    >>
    >> Now if I try to run my web app from user phil in my ide using tomcat I
    >> think I am getting file permission errors.[/color]
    >
    >[/color]


    Phil, backtrack a bit...you can't edit postgres.conf until you've done an
    initdb because initdb initialises the data directory, including postgres.conf,
    pg_hba.conf and all the other files associated with a postgresql database
    cluster.

    So starting from the beginning:

    su to your desired user for postgresql, ie. postgres
    Don't bother chowning anything.
    Don't create a data directory; rename /usr/local/pgsql/data to something (just
    in case it is wanted later however unlikely that seems).
    _Do_ run: initdb -D /usr/local/pgsql/data
    _Do_ run pg_ctl to start the server but don't use the -o '-i' switch.
    _Do_ run createuser to create a database user of the same name as the user
    running the Tomcat etc. processes (user phil?)
    _Do_ run createdb -O <user from above step> hardwoodthunder

    Return/su to the Tomcat etc. user and try accessing the database with:
    psql hardwoodthunder

    Create schema, insert data, whatever.

    Use you IDE, Tomcat etc.

    If Tomcat etc. can't make a database connection, and you should see something
    in it's log if it can't, then go and edit /usr/local/pgsql/data/postgres.conf
    to set tcpip_socket to true, stop and start postgresql as postgres using pg_ctl
    as above.

    If you have any doubts about the database connectivity, turn on connection and
    statement logging in postgres.conf and you will see in /tmp/postgresql.log a)
    when a client connects to a database in the cluster and b) what statements it
    issues to the engine.

    Also, it's practice on these lists to reply to all, including the list, when
    responding to a message. Bearing in mind my emails currently don't propagate to
    the postgresql.org domain could you please forward this response to the
    -general list so other's can see and contribute as appropiate. Thanks.


    --
    Nigel Andrews





    ---------------------------(end of broadcast)---------------------------
    TIP 3: if posting/reading through Usenet, please send an appropriate
    subscribe-nomail command to majordomo@postg resql.org so that your
    message can get through to the mailing list cleanly

  • Peter Alberer

    #2
    Re: Setting up Postgresql on Linux

    Hi phil,
    [color=blue][color=green][color=darkred]
    >>>>> >>1.Is there a better way to start the database and the web[/color][/color]
    >application?[/color]

    I start postgres via daemontools (http://cr.yp.to/daemontools.html). It
    takes care of the logfile rolling (via multilog) and restarts the server
    should it go down.

    Hope that helps, peter



    ---------------------------(end of broadcast)---------------------------
    TIP 7: don't forget to increase your free space map settings

    Comment

    Working...