Embarrassed to have to ask this of you Openshift guys, but Perl won't connect to MySQL, though PHP does just fine.
Following code works just fine on the client (I added OPENSHIFT env variables on my local machine) but fails on the Openshift app:
my $db_name = 'campaignmotor';
my $db_host = $ENV{'OPENSHIFT_MYSQL_DB_HOST'};
my $db_port = $ENV{'OPENSHIFT_MYSQL_DB_PORT'};
my $db_pw = $ENV{'OPENSHIFT_MYSQL_DB_PASSWORD'};
my $db_user = $ENV{'OPENSHIFT_MYSQL_DB_USERNAME'};
sub db_connect {
my $dsn = "DBI:mysql:database=$db_name;host=$db_host;port=$db_port";
my $dbh = DBI->connect($dsn, $db_user, $db_pw);
return $dbh;
}
I get unending messages like:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Following PHP config on my web app works just fine:
$db['default']['hostname'] = getenv('OPENSHIFT_MYSQL_DB_HOST') . ':'
. getenv('OPENSHIFT_MYSQL_DB_PORT');
$db['default']['username'] = getenv('OPENSHIFT_MYSQL_DB_USERNAME');
$db['default']['password'] = getenv('OPENSHIFT_MYSQL_DB_PASSWORD');
$db['default']['database'] = 'campaignmotor';
mysql, mysqldump etc. all work on the command line.
This is an HAProxy PHP application
Odd thing is I have no OPENSHIFT_MYSQL_DB_SOCKET variable. Most of the helper threads on this topic reference that.
Thanks in advance!