Has anyone won the fight with postgres on OSC Server update to 3.2

Dr. Hawkins dochawk at gmail.com
Thu Oct 23 20:43:51 EDT 2014


I'm nearly ready to pull my hair out.

Shen OSX server updated to 3.2.1, it broke postgres, badly.  This doesn't
seem to have been solved on on 3.2.2, either.

"unix_socket_directory" became "unix_socket_directories" in
org.postgresql.postgres.plist --but this has to be done manually, resulting
in a failure to convert the default database from 9.2 to 9.3,and the need
to manually do this and and/or manually import and use initdb to create one.

Of course, apple has no provision to rollback to 3.1.  Doing this with time
machine breaks yet more . . . and there is no way to force a reinstall of
3.2.2 once it thinks it's already installed (although I suppose somewhere
there is a list that I could edit)

After days of fighting, I got it running on my laptop, and managed to
import my old database.  Hurrah.  Then I added the listening ip
addresses--and it would no longer start!

I managed, after much conniving, to get it running on the desktop, and
import the database (getting the dump meant an adventure with the 9.2
binaries that are indeed part of the bundle).  Imported, got it speaking
with the psql program as user _postgres, and . . .

livecode can't connect.  I get the message,

could not connect to server: Connection refused
    Is the server running on host "sharpshin.local" and accepting
    TCP/IP connections on port 5432?

well, yes:

[sharpshin:/Library/Server/PostgreSQL] root# ls -l
/private/var/pgsql_socket/
total 56
srwxrwx---  1 _postgres  _postgres    0 Oct 23 17:25 .s.PGSQL.5432
-rw-------  1 _postgres  _postgres   79 Oct 23 17:25 .s.PGSQL.5432.lock
-rw-------  1 _postgres  _postgres  283 Oct 13 13:30
_devicemgr_server1-upgrade.log
-rw-------  1 _postgres  _postgres  621 Oct 13 13:30
_devicemgr_server2-upgrade.log
-rw-------  1 _postgres  _postgres  283 Oct 13 13:31
_teamsserver_server1-upgrade.log
-rw-------  1 _postgres  _postgres  650 Oct 13 13:31
_teamsserver_server2-upgrade.log
-rw-------  1 _postgres  _postgres  283 Oct 13 13:29
caldav_server1-upgrade.log
-rw-------  1 _postgres  _postgres  569 Oct 13 13:29
caldav_server2-upgrade.log
[sharpshin:/Library/Server/PostgreSQL] root# ls -l /var/pgsql_socket/
total 56
srwxrwx---  1 _postgres  _postgres    0 Oct 23 17:25 .s.PGSQL.5432
-rw-------  1 _postgres  _postgres   79 Oct 23 17:25 .s.PGSQL.5432.lock
-rw-------  1 _postgres  _postgres  283 Oct 13 13:30
_devicemgr_server1-upgrade.log
-rw-------  1 _postgres  _postgres  621 Oct 13 13:30
_devicemgr_server2-upgrade.log
-rw-------  1 _postgres  _postgres  283 Oct 13 13:31
_teamsserver_server1-upgrade.log
-rw-------  1 _postgres  _postgres  650 Oct 13 13:31
_teamsserver_server2-upgrade.log
-rw-------  1 _postgres  _postgres  283 Oct 13 13:29
caldav_server1-upgrade.log
-rw-------  1 _postgres  _postgres  569 Oct 13 13:29
caldav_server2-upgrade.log

But it won't talk.

in psql, I can see that all exists:

template1=# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 _postgres | Superuser, Create role, Create DB, Replication | {}
 dhbk      |                                                | {}
 hawk      |                                                | {dhbk}
 root      |                                                | {}

and my database and tables exist, too.

org.postgresql.postgres.plist is
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "
http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ProgramArguments</key>
    <array>
        <string>-D</string>
        <string>/Library/Server/PostgreSQL/Data</string>
        <string>-c</string>
        <string>unix_socket_directories=/private/var/pgsql_socket</string>
        <string>-c</string>
        <string>logging_collector=on</string>
        <string>-c</string>
        <string>log_connections=on</string>
        <string>-c</string>
        <string>log_lock_waits=on</string>
        <string>-c</string>
        <string>log_statement=ddl</string>
        <string>-c</string>
        <string>log_line_prefix=%t </string>
        <string>-c</string>
        <string>listen_addresses=127.0.0.1,::1,192.186.*.*,10.0.*.*</string>
        <string>-c</string>
        <string>log_directory=/Library/Logs/PostgreSQL</string>
        <string>-c</string>
        <string>log_filename=PostgreSQL.log</string>
        <string>-c</string>
        <string>unix_socket_group=_postgres</string>
        <string>-c</string>
        <string>unix_socket_permissions=0770</string>
    </array>
</dict>
</plist>



while the active part of pg_hba.conf is
# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
# IPv6 local connections:
host    all             all             ::1/128                 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     _postgres                                trust
#host    replication     _postgres        127.0.0.1/32            trust
#host    replication     _postgres        ::1/128                 trust
host    all    all    192.168.0.1/16    trust
host    all    all    10.0.0.1/16    trust


I'm at a loss here.  I know almost nothing about sockets, but it seems to
me that 10.0.1.10 should be able to connect to itself with these.

OK, part of the oral here is to make my own postgres installation for the
shipping product, but . . .
-- 
Dr. Richard E. Hawkins, Esq.
(702) 508-8462



More information about the use-livecode mailing list