Страница 1 из 1
DBD::MySQL
Добавлено: 2008-11-18 12:13:03
tselischev
Добрый день...
начну с самого начала..... запускаю скрипт, который написан на перле, который должен вносить данные в базу данных....
скрипт вылетает с ошибкой
Can't locate Mysql.pm in @INC ... и т.д
если я правильно понял, то у меня нет модуля MySQL под перл.... качаю DBD-mysql-4.010 и пытаюсь установить...
и на одном из тестов он вылетает....
запускаю заново с другими опциями
#perl Makefile.PL --testuser=root
тест выдает ошибку но пишет, что закончил тестить
далее make && make install
и вроде все... и результат запуска скрипта тот же самый.... и перловый скрипт не работает....
у кого какие идеи...?
Re: DBD::MySQL
Добавлено: 2008-11-18 12:15:13
LMik
Я надеюсь вы под FreeBSD?
Тогда лучше из портов поставтье DBD.
Re: DBD::MySQL
Добавлено: 2008-11-18 12:17:03
tselischev
да.. я под FreeBSD 6.2 с обновленными портами до 6.4
а где искать DBD в портах
Re: DBD::MySQL
Добавлено: 2008-11-18 12:28:00
tselischev
установил из портов сейчас p5-DBD-mysql51 /у меня MySQL 5.1/
ребутнул .... и получается такая же ошибка
Ошибка полностью:
Can't locate Mysql.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8 .)
Re: DBD::MySQL
Добавлено: 2008-11-18 12:32:50
LMik
tselischev писал(а):установил из портов сейчас p5-DBD-mysql51 /у меня MySQL 5.1/
ребутнул .... и получается такая же ошибка
Ошибка полностью:
Can't locate Mysql.pm in @INC (@INC contains: /usr/local/lib/perl5/5.8.8/BSDPAN /usr/local/lib/perl5/site_perl/5.8.8/mach /usr/local/lib/perl5/site_perl/5.8.8 /usr/local/lib/perl5/site_perl /usr/local/lib/perl5/5.8.8/mach /usr/local/lib/perl5/5.8.8 .)
Поищите где ваш Mysql.pm лежит, и нужно проверить чтобы этот путь был в инклайдах.
Re: DBD::MySQL
Добавлено: 2008-11-18 12:37:20
hizel
вы видимо
используете?
надоть
и далее
Код: Выделить всё
my $dbh = DBI->connect("DBI:mysql:host=$server;database=$db","$user","$password") or die 'can\'t connect sql server :(';
Re: DBD::MySQL
Добавлено: 2008-11-18 12:37:55
tselischev
нашел
/usr/local/lib/perl5/site_perl/5.8.8/mach/DBD/mysql.pm
/usr/local/lib/perl5/site_perl/5.8.8/mach/Bundle/DBD/mysql.pm
а как мне сейчас прописать путь в инклайды
Re: DBD::MySQL
Добавлено: 2008-11-18 12:42:09
LMik
tselischev писал(а):нашел
/usr/local/lib/perl5/site_perl/5.8.8/mach/DBD/mysql.pm
/usr/local/lib/perl5/site_perl/5.8.8/mach/Bundle/DBD/mysql.pm
а как мне сейчас прописать путь в инклайды
А как перл ставили собственно? Из портов?
Не должно так глючить, рекомендую грохнуть перл и все что с ним связано, и переставить.
Re: DBD::MySQL
Добавлено: 2008-11-18 12:45:57
tselischev
LMik писал(а):
А как перл ставили собственно? Из портов?
из портов ставил всесте с gcc
Re: DBD::MySQL
Добавлено: 2008-11-18 12:47:49
hizel
обратите у вас в ошибке Mysql с большой букофки
Re: DBD::MySQL
Добавлено: 2008-11-18 12:49:32
LMik
tselischev писал(а):LMik писал(а):
А как перл ставили собственно? Из портов?
из портов ставил всесте с gcc
а так не прокатило?
http://forum.lissyara.su/viewtopic.php? ... ad#p114155
Re: DBD::MySQL
Добавлено: 2008-11-18 12:51:14
tselischev
hizel писал(а):обратите у вас в ошибке Mysql с большой букофки
да... обратил... файлика Mysql.pm нету, а с маленькой есть.
use DBI; - если это подключиться к базе данных, то mysql говорит, что нет у меня такой базы...
или это как-то надо из шелла вводить???

Re: DBD::MySQL
Добавлено: 2008-11-18 12:52:16
hizel
беспредметно

скрипт в студию!
Re: DBD::MySQL
Добавлено: 2008-11-18 12:55:03
tselischev
делал пот во это статье счетчик трафа
xttp://
www.tmeter.ru/misc/trafd/
скрипт там в конце....
Re: DBD::MySQL
Добавлено: 2008-11-18 13:03:53
manefesto
Re: DBD::MySQL
Добавлено: 2008-11-18 13:08:39
hizel
там два скрипта, первый я испаганил так
Код: Выделить всё
hizel@hzwork:~/src/my$ diff ololo_old.pl ololo.pl
2c2
< use Mysql;
---
> use DBI;
8c8
< $dbh = Mysql->Connect("","ipacc");
---
> $dbh = DBI->connect("DBI:mysql:database=ipacc");
10c10
< $dbh->Query($del_query);
---
> $dbh->do($del_query);
50,53c50,53
< $ins_query="insert into yesterday (src_ip, src_port, dst_ip,\
< dst_port, proto, bytes) values ('".@a[0]."',".$src_port.\
< ",'".@a[2]."',".$dst_port.",".$proto.\",".$a[6].");";
< $dbh->Query($ins_query);
---
> $sth->prepare('insert into yesterday (src_ip, src_port, dst_ip,\
> dst_port, proto, bytes) values (?,?,?,?,?,?)');
> $sth->execute($a[0],$src_port,$a[2],$dst_port,$proto,$a[6]);
> $sth->finish();
56c56
<
---
> $dbh->disconnect();
Re: DBD::MySQL
Добавлено: 2008-11-18 13:50:42
tselischev
спасибо... сейчас буду сидеть разбираться

Re: DBD::MySQL
Добавлено: 2012-08-28 5:55:43
Spaun
hizel писал(а):там два скрипта, первый я испаганил так
Код: Выделить всё
hizel@hzwork:~/src/my$ diff ololo_old.pl ololo.pl
2c2
< use Mysql;
---
> use DBI;
8c8
< $dbh = Mysql->Connect("","ipacc");
---
> $dbh = DBI->connect("DBI:mysql:database=ipacc");
10c10
< $dbh->Query($del_query);
---
> $dbh->do($del_query);
50,53c50,53
< $ins_query="insert into yesterday (src_ip, src_port, dst_ip,\
< dst_port, proto, bytes) values ('".@a[0]."',".$src_port.\
< ",'".@a[2]."',".$dst_port.",".$proto.\",".$a[6].");";
< $dbh->Query($ins_query);
---
> $sth->prepare('insert into yesterday (src_ip, src_port, dst_ip,\
> dst_port, proto, bytes) values (?,?,?,?,?,?)');
> $sth->execute($a[0],$src_port,$a[2],$dst_port,$proto,$a[6]);
> $sth->finish();
56c56
<
---
> $dbh->disconnect();
Can't call method "prepare" on an undefined value at ./db_step1.pl line 50, <F> line 5.
Line 50:
Код: Выделить всё
$sth->prepare('insert into yesterday (src_ip, src_port, dst_ip, dst_port, proto, bytes) values (@a[0],$src_port,@a[2],$dst_port,$proto,$a[6])');
Re: DBD::MySQL
Добавлено: 2012-08-28 5:58:08
Spaun
Вообще не хватает знаний и опыта мне победить этот скрипт. Есть какие нибудь другие варианты\статьи, помимо
http://tmeter.ru/misc/trafd/, со скриптами для сброски в mysql, а оттуда отчет на почту?
Re: DBD::MySQL
Добавлено: 2012-08-28 9:49:08
rayder
а откуда вы увереннычто с другими похожей ошибки не будет?
проблемы нужно не игнорить, а решать!
покажите полностью скрипт, который наковыряли вы, ибо тот же инсерт насколько я вижу вы не переписывали, хотя вам об этом написали.
+ вчитайтесь в ошибку и посмотрите внимательнее на запросы, а именно на ваши инсерты
Re: DBD::MySQL
Добавлено: 2013-12-10 4:53:12
Sorryxs
Извеняюсь что труп поднимаю, проблема похожая. Делаю базу для Nagvis.
Код: Выделить всё
Niger# ./installdb -u root -p 'pass' -h host_ip -d dbo
Can't locate object method "connect" via package "DBI" (perhaps you forgot to load "DBI"?) at ./installdb line 41.
Не могу базу развернуть собственно, может подскажет кто?
Вроде модули все что надо есть.