I am moving websites to Pair.com from a dedicated server where local is the implied database host. So, I have never had to declare it and connections using CGI::Application::Plugin::DBH have looked like this and worked fine:
$self->dbh_config( 'DBI:mysql:'. $self->config_param('mysql.database'), $self->config_param('mysql.username'), $self->config_param('mysql.password'), {RaiseError => 1} );
However, Pair requires a host name. It might look like: vdb25b.pair.com and the database: 1945667_w
The docs for CGI::Application::Plugin::DBH give this for the data source
# use the same args as DBI->connect(); $self->dbh_config($data_source, $username, $auth, \%attr);
And DBI docs suggest this format for the data structure
$data_source = dbi:DriverName:database=database_name;host=hostname
So, I have set up the connection to look like this:
my $data_source = 'DBI:mysql:'. $self->config_param('mysql.database').':'. $self->config_param('mysql.host'); $self->dbh_config( $data_source, $self->config_param('mysql.username'), $self->config_param('mysql.password'), { RaiseError => 1 } );
There is no error, it just hangs and I have to manually kill it.
In a straight up connection using DBI, this works fine:
$dbh = DBI->connect( $data_source, config_param('mysql.username'), config_param('mysql.password'), { RaiseError => 1 } );
Question: What is the data source look like when the host must be named when using CAP::DBH?
In reply to What is the proper data structure for CAP::DBH? by bradcathey
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |