-eval {$DB_Class->connection("dbi:mysql:$db", "$dbuser", "$dbpasswd"); };
-$err = $@;
-$skip_msg = "Could not connect to MySQL using database 'test', username 'test', and password ''. Check privelages and try again.";
+
+my $drh = DBI->install_driver("mysql");
+my %databases = map { $_ => 1 } $drh->func('localhost', 3306, '_ListDBs');
+
+unless ($databases{test}) {
+ my $rc = $drh->func("createdb", 'test', 'admin');
+}
+
+%databases = map { $_ => 1 } $drh->func('localhost', 3306, '_ListDBs');
+
+if ($databases{test}) {
+ eval {$DB_Class->connection("dbi:mysql:$db", "$dbuser", "$dbpasswd"); };
+ $err = $@;
+ $skip_msg = "Could not connect to MySQL using database 'test', username 'test', and password ''. Check privileges and try again.";
+} else {
+ $err = 'no test db';
+ $skip_msg = "Could not connect to MySQL using database 'test' as it doesn't exist, sorry";
+}
+