[Dbix-class] PostgreSQL connect error
Marcello Romani
mromani at ottotecnica.com
Wed Jun 6 09:54:28 GMT 2007
张淼 ha scritto:
> #My Catalyst APP name is "NIC",
> #NIC/lib/NIC/Model/NiscDB.pm
>
> package NIC::Model::NiscDB;
> use strict;
> use base 'Catalyst::Model::DBIC::Schema
> ';
> __PACKAGE__->config(
> schema_class => 'NiscDB',
> connect_info => [
> 'dbi:Pg:dbname=niscdb;host=210.42.1**.***',
> 'user',
> 'password',
> ],
> );
>
>
> #NIC/lib/NiscDB.pm
>
> package NiscDB;
> use base qw/DBIx::Class::Schema/;
> __PACKAGE__->load_classes({
> NiscDB => [qw/UserInfo/]
> });
>
> #NIC/lib/NiscDB/UserInfo.pm
>
> package NiscDB::UserInfo;
> use base qw/DBIx::Class/;
> __PACKAGE__->load_components(qw/PK::Auto Core/);
> __PACKAGE__->table('userinfo');
> __PACKAGE__->add_columns(qw/serial_no dept_no user_no user_name
> user_addr ip_addr mac_addr link_switch node_no phone email memo/);
> __PACKAGE__->set_primary_key(qw/serial_no/);
>
> #And in my Controller Macs,the function is below
> sub find : Local {
> my ( $self, $c, $mac ) = @_;
> $c->res->redirect( $c->uri_for('/') ) unless ( $mac );
> (my $user) = $c->model('NiscDB::UserInfo')->search({mac_addr => $mac});
> $c->stash->{user} = $user;
> $c->stash->{template} = 'macs/find.tt2';
> }
>
> #But When I locate http://catalyst/nic/macs/find/00:19:21:4b:05:24
> <http://catalyst/nic/macs/find/00:19:21:4b:05:24>, There is an error:
>
> |Caught exception in NIC::Controller::Macs->find "DBIx::Class::ResultSet::search(): DBI Connection failed: could not connect to server: Permission denied
> Is the server running on host "
>
> 210.42.1**.***" and accepting
> TCP/IP connections on port 5432?"
>
> ||#How can I deal with it? Thanks!|
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> Searchable Archive: http://www.mail-archive.com/dbix-class@lists.rawmode.org/
This doesn't seem a dbix-class issue, but a much simpler connection
problem to the databse server.
Have you checked that postgres is running on the server you are trying
to connect to ?
Have you checked that the IP address (or dns name) you have specified in
the catalyst application have not been misspelled ?
Also, try to connect to the postgres server using the command line
client (psql) on the machine where the catalst application should be
running.
HTH
--
Marcello Romani
Responsabile IT
Ottotecnica s.r.l.
http://www.ottotecnica.com
More information about the Dbix-class
mailing list