Ok, I found it, but this has got to be some kind of bug.
This works:
Apache::DBI->connect_on_init("dbi:pg:demo","demo");
This doesn't:
Apache::DBI->connect_on_init("dbi:Pg:demo","demo");
That's right, putting 'dbi:pg' in lowercase made it work. I looked through
some old newsgroup stuff and saw someone using Postgres had it similar to
that.
Here's some further debugging information for the developers:
perl -v => v5.6.1 on i386-freebsd (FreeBSD 4.4)
# pkg_info |egrep -i "dbi|postgres"
p5-Apache-DBI-0.88 DBI persistent connection, authentication and authorization
p5-DBD-Pg-1.01 Provides access to PostgreSQL databases through the DBI
p5-DBI-1.20 The perl5 Database Interface. Required for DBD::* modules
postgresql-7.1.3 A robust, next generation, object-relational DBMS
-doug
On 14 Mar 2002, Brendan W. McAdams wrote:
> I've seen similar behavior with DBD::Sybase; if your SYBASE env variable
> is not set or points at an invalid directory Apache starts up but begins
> segging every child process over and over again.
>
> I'm not familiar with Postgres but this might point you in the right
> direction.
>
> On Thu, 2002-03-14 at 18:09, Doug Silver wrote:
> > I can't seem to get Apache::DBI to start up properly.
> >
> > Here's my startup.pl:
> >
> > #!/usr/bin/perl -w
> > use strict;
> > use Apache ();
> > use Apache::Status ();
> > use Apache::DBI (); # This *must* come before all other DBI modules!
> > use Apache::Registry;
> > use CGI ();
> > CGI->compile(':all');
> > use CGI::Carp ();
> > $Apache::DBI::DEBUG = 2;
> > Apache::DBI->connect_on_init
> > ("DBI:Pg:dbname=demo;host=localhost", "demo", "",
> > {
> > PrintError => 1, # warn() on errors
> > RaiseError => 0, # don't die on error
> > AutoCommit => 0, # require transactions
> > }
> > )
> > or die "Cannot connect to database: $DBI::errstr";
> > 1;
> >