#!/bin/env perl
use warnings;
use strict;
use DBI;
my $db = "****";
my $host = "****";
my $cfg_file = "/tmp/my.cnf";
my ($dsn, $dbh);
print STDERR "Without host=\$host\n";
$dsn = "dbi:mysql:mysql_ssl=1;database=$db;mysql_read_default_file=$cfg_file;mysql_read_default_group=test_group";
$dbh = DBI->connect($dsn);
print STDERR "\nWith host=\$host\n";
$dsn = "dbi:mysql:mysql_ssl=1;database=$db;mysql_read_default_file=$cfg_file;mysql_read_default_group=test_group;host=$host";
$dbh = DBI->connect($dsn);
print "\$dbh = $dbh\n";
####
Without host=$host
DBI connect('mysql_ssl=1;database=****;mysql_read_default_file=/tmp/my.cnf;mysql_read_default_group=test_group','',...) failed: Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2) at /tmp/test_db.pl line 12.
With host=$host
$dbh = DBI::db=HASH(0xa00318a18)
####
[test_group]
host=****
port=3306
database=****
user=****
password=****
no-auto-rehash
ssl=1