Как я могу создать базу данных MySQL из скрипта Perl? - PullRequest
2 голосов
/ 17 февраля 2011

Я пытаюсь создать базу данных в Perl, но она пытается запросить у меня базу данных Вот мой код:

my @db_months = qw(JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC);

foreach my $db_month (@db_months)
{
  ## create db
  my $db_name = $db_month.$Year;
  my $dbh = DBI->connect($dns, $user, $password) or die "Unable to connect: $DBI::errstr\n"; 
  my $row = $dbh->do("CREATE DATABASE '".$db_name."' DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;"); 
  $dbh->disconnect(); 
}

Пожалуйста, помогите.

Ответы [ 3 ]

2 голосов
/ 25 февраля 2015

Просто опустите database=$database;:

$dbh = DBI->connect("DBI:mysql:host=$host;port=$port", $user, $pw);
$dbh->do("create database test") or die "Cannot create database \n ";
1 голос
/ 17 февраля 2011

Это действительно помогает узнать, какая строка выдает ошибку и что именно является ошибкой.

Попробуйте использовать обратные кавычки (`) вместо одинарных кавычек (') вокруг имени базы данных ...

0 голосов
/ 17 февраля 2011

Может использоваться функция администрирования сервера из DBD::mysql:

my $rc = $dbh->func( 'createdb', $db_name, 'admin' );
...