Посоветуйте, что пропустил при конфигурировании?
MySQL(mysql-3.23.49-win.zip) установил в с:/mysql , ничего не делал, т.е. больше ничего не редактировал. Запускаю mysqld, апаче, запускаю скрипт из браузера для проверки,
#!/usr/local/bin/perl
use DBI; # Загружаем модуль DBI, который позволяет
# Perl работать с базами данных
# Для его работы нужно скачать и установить два файла из:
# http://www.activestate.com/PPMPackages/zips/6xx-builds-only/
# DBI.zip и DBD-MySQL.zip.
$dbdriver = "mysql"; # Имя DBI-драйвера, в нашем случае требуется
# драйвер MySQL. DBI, в принципе, наплевать,
# с какой базой работать - хоть с Oracle,
# хоть с Microsoft Access. Сейчас оставьте как есть.
$hostname = "localhost"; # Где работает сервер MySQL?
$port = "3306"; # Порт сервера?
$username = "pass"; # Имя
$password = "123456"; # и пароль пользователя MySQL
$basename = "test"; # Название базы, в которой будем работать
$tablename = "testhowitworks"; # Имя таблицы, с которой будем экспериментировать. Если таблица с таким именем есть, она будет затёрта!
# Дальше ничего менять не надо. Не делайте код хуже чем он уже есть ;-)
print "Content-type: text/html\\n\\n";
print "\\n\\nТест взаимодействия Perl и MySQL\\n\\n\\n\\n";
print "Тест взаимодействия Perl и MySQL
\\nЭтот простенький тест должен открыть модули DBI и DBD-MySQL в Perl,\\nсоздать таблицу $tablename в базе $basename и занести в неё\\nдесять нумерованных строчек. После этого эти строчки будут выведены на\\nэкран, и скрипт приберёт за собой, удалив уже не нужную\\nтаблицу $tablename.
\\n\\n";
print "Если ничего не работает..
\\nВы не запустили MySQL, указали неверное имя пользователя и пароль,\\nили же неправильно настроили вебсервер. Распечатайте инструкции и шаг\\nза шагом проконтролируйте свои действия.
\\n\\n";
print "Тест MySQL:
\\n";
# Дальше всё должно быть понятно даже тем, кто мало разбирается
# в MySQL, Perl и DBI. Код скрипта написан более в угоду понятности,
# нежели чем компактности и скорости. “Профи” скривят лицо, а вот
# новичкам будет понятнее.
$dbh = DBI->connect("dbi:$dbdriver:$basename:$hostname:$port","$username","$password");
# Если таблица $tablename в базе $basename уже есть, грохаем её.
# Если кто не спрятался, я не виноват.
$sqlstatement = "DROP TABLE IF EXISTS $tablename";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "Невозможно выполнить SQL-запрос.";
# Создаём таблицу заново.
$sqlstatement = "CREATE TABLE $tablename (textfield TEXT NULL)";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "Невозможно выполнить SQL-запрос.";
# Загоняем в неё десяток текстовых строчек
for ($counter=1; $counter < 11; $counter++) {
$sqlstatement = "INSERT INTO $tablename VALUES (\'Это - строчка номер $counter\')";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "Невозможно выполнить SQL-запрос.";
};
# И выводим их обратно на экран.
$sqlstatement = "SELECT * FROM $tablename";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "Невозможно выполнить SQL-запрос.";
print "\\nТаблица $tablename: |
";
while (@row=$sth->fetchrow_array) {print "@row |
\\n";}
print "
";
# Убираемся за собой.
$sqlstatement = "DROP TABLE IF EXISTS $tablename";
$sth = $dbh->prepare($sqlstatement);
$sth->execute || die "Невозможно выполнить SQL-запрос.";
# Вот, собственно, и всё. Долгие и продолжительные аплодисменты зала.
А тут логи Apache
[Thu Apr 18 15:04:15 2002] [error] [client 127.0.0.1] Premature end of script headers: c:/usr/local/cgi-bin/mysqltest.cgi
[Thu Apr 18 15:04:15 2002] [error] [client 127.0.0.1] Can\'t locate loadable object for module DBI in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at C:/usr/local/lib/DBI.pm line 182
[Thu Apr 18 15:04:15 2002] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at C:/usr/local/lib/DBI.pm line 182.
[Thu Apr 18 15:04:15 2002] [error] [client 127.0.0.1] BEGIN failed--compilation aborted at c:/usr/local/cgi-bin/mysqltest.cgi line 2.
Может быть библиотеку DBI и MySQL не так установил, просто списав файлы DBI.pm , MySQL.pm c такими же дирректориями из архива в директорию LIB перла.
Заранее спасибо.