Works as Administrator but FAILS as postgres user - Mailing list pgsql-cygwin

From derry.birse@tde.alstom.com
Subject Works as Administrator but FAILS as postgres user
Date
Msg-id OFFE59FBE2.91450DF8-ON80256C8B.00365E33@transport.alstom.com
Whole thread Raw
List pgsql-cygwin

The good news:

I have successfully installed PostgreSQL 7.2 on Cygwin 1.3.17, with the postmaster
running as a service on Windows NT. However this was installed such that the ipc-daemon
service is owned by the "System" account, the postmaster service is owned by the
"Administrator" account and all databases have been created by the "Administrator" account.

The bad news:

For my production environment I am trying to move to a situation where the postmaster
service and all databases are owned by the specially created "postgres" account. I have
started by following the "Install as Service" instructions below and building a new
database (I will move the data later).

However when I run postmaster (step 6) I get the following error. However if I follow the
instructions replacing the postgres user with the Administrator user everything works.

    IpcMemoryCreate: shmget(key=5432001, size=1441792, 03600) failed:
    Not enough core

    This error usually means that PostgreSQL's request for a shared
    memory segment exceeded available memory or swap space.
    To reduce the request size (currently 1441792 bytes), reduce
    PostgreSQL's shared_buffers parameter (currently 64) and/or
    its max_connections parameter (currently 32).

    The PostgreSQL Administrator's Guide contains more information about
    shared memory configuration.

I am not sure that I believe this error as installing under the Administrator
account produces no such error.

Derry Birse

Install as Service
==================

The following is the NT services Cygwin PostgreSQL installation procedure:

1. Install the cygipc ipc-daemon as a NT service:

# ipc-daemon --install-as-service

2. Create the "postgres" user account:

# cmd /c lusrmgr.msc # [3] # mkpasswd -l -u postgres >>/etc/passwd

3. Grant the "postgres" user the "Log on as a service" user right:

# cmd /c secpol.msc [4]

4. Install postmaster as a NT service (one line):

# cygrunsrv --install postmaster --path /usr/bin/postmaster --args "-D
/usr/share/postgresql/data -i" --dep ipc-daemon --termsig INT --user postgres --shutdown # [5] [6]

5. Create the PostgreSQL data directory:

# mkdir /usr/share/postgresql/data

6. Change ownership of the PostgreSQL data directory:

# chown postgres /usr/share/postgresql/data

7. Initialize PostgreSQL (*when running under the "postgres" account*):

$ initdb -D /usr/share/postgresql/data

5. Start the cygipc ipc-daemon:

# net start ipc-daemon # [7]

6. Start postmaster:

# net start postmaster # [7]

7. Connect to PostgreSQL:

# psql -U postgres template1 [8] [9]

The following are the notes to the above:

[1] The "#" prompt indicates running as a user which is a member of the Local
    Administrators group.
[2] The "$" prompt indicates running as the "postgres" user. Log in as
    "postgres" or use ssh to emulate Unix's "su" command.
[3] On Windows 2000, this starts the "Local Users and Groups" applet. On
    Windows NT 4.0, do the analogous operation.
[4] On Windows 2000, this starts the "Local Security Settings" applet. On
    Windows NT 4.0, do the analogous operation.
[5] Do not use rxvt for this step because the password exchange will not work
    properly.
[6] Clean postmaster shutdown will only work with a post Cygwin 1.3.2 snapshot
    from 2001-Jul-28 or later.
[7] Cygwin's bin directory (e.g., C:Cygwinbin) must be added to the Windows
    NT/2000's system PATH and the machine rebooted for the SCM to find
    cygwin1.dll.
[8] Actually, psql can run under any user account.
[9] One can use PostgreSQL's createuser command or set PGUSER to obviate the
    need to specify "-U postgres" on the psql command line.




pgsql-cygwin by date:

Previous
From: Brian Marshall
Date:
Subject: Re: Running under Cygwin: stability - performance?
Next
From: "Dave Page"
Date:
Subject: Re: Works as Administrator but FAILS as postgres user