это ошибки "нету таблички в мускульной базе," хотите поговорить о том, как же диагностировать ваши недоделки в базе данных - делайте отдельную тему, к теме этого треда ваши ошибки не относятсяchubik писал(а):У меня вот такие ерроры
ERROR 1146 (42S02) at line 1: Table 'trafd.traffic_tmp' doesn't exist
ERROR 1146 (42S02) at line 1: Table 'trafd.traffic_tmp' doesn't exist
ERROR 1146 (42S02) at line 1: Table 'trafd.traffic_tmp' doesn't exist
ERROR 1146 (42S02) at line 1: Table 'trafd.le1_2011' doesn't exist
trafd
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: trafd
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2011-04-15 17:54:52
Re: trafd
извините, не так выразился, при использовании этого http://www.lissyara.su/articles/freebsd ... rafd+mysql скрипта выдает такие ошибки
- vadim64
- майор
- Сообщения: 2101
- Зарегистрирован: 2009-09-17 15:15:26
- Откуда: Засратовец
Re: trafd
да всё вы правильно выразились, вы что то не правильно сделали по статье и не понимаете что вам красноречиво говорит сервер бд
говорю вам: создайте новую тему в разделе для новичков и там нормально всё опишите
говорю вам: создайте новую тему в разделе для новичков и там нормально всё опишите
Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.
-
- рядовой
- Сообщения: 21
- Зарегистрирован: 2008-02-15 8:34:35
trafd
На FreeBSD 9.2 с ipacctd все прекрасно заработало кроме perl скрипта. При подключении к БД perl выдавал ошибку
Подправил немного скрипт где идет работа с mysql
Выкладываю может кому пригодится.
Код: Выделить всё
Can't locate Mysql.pm in @INC
Выкладываю может кому пригодится.
Код: Выделить всё
#!/usr/bin/perl -w
# вводим переменные
# MySQL - хост где БД
$db_host = 'localhost';
# MySQL юзер
$db_user = 'root';
# MySQL пароль
$db_password = '';
# MySQL база данных
$db_database = 'ipacctd';
# подрубаем модуль для работы с MySQL
$port = '3306';
#use mysql;
use DBI;
# время - тока чтоб год достать...
use Time::localtime;
# достаём время
# Год
$year = localtime->year() + 1900;
# Месяц (идиотский язык, чтобы достать месяц в виде
# двузначного числа приходиться изгаляться через жопу...)
# Если знаете способ лучше - подскажите, поменяю...
$month = `date '+%m'`;
$month = substr($month,0,2);
# Коннектимся к MySQL
# $dbh = Mysql->Connect($db_host,$db_database,$db_user,$db_password);
$dsn = "DBI:mysql:database=$db_database;host=$db_host;port=$port";
$dbh = DBI->connect($dsn, $db_user, $db_password);
# Вызываем внешние программы по сохранению траффика
system("killall -1 ipacctd && sleep 2");
#use strict;
if(open(RC_CONF,"/etc/rc.conf")){
my @data = reverse <RC_CONF>;
chomp @data;
close RC_CONF;
foreach my $str (@data)
{
# разбираем rc.conf
next if $str =~ /^#/ or $str =~ /^\s*$/;
$str =~ /^\s+/;
$str =~ /\s+$/;
my($var_name,$var_value) = split(/=/, $str);
if($var_name eq 'ipacctd_rules')
{
$var_value =~ s#^\s*(['"]?)(.*)\1#$2#;
foreach my $interface (split (/\s+/, $var_value))
{
# шуршим по интерфейсам
# Создаём таблицу для постоянного хранения траффика
# строим кверю к MySQL
$MySQL_query = "CREATE TABLE IF NOT EXISTS `" . $interface . "_" . $year . "`(
`unic_id` INT(16) NOT NULL auto_increment,
`date` DATE NOT NULL,
`time` TIME NOT NULL,
`unix_time` INT(12) NOT NULL,
`from_IP` CHAR(16) NOT NULL,
`port_from_IP` INT(8) NOT NULL,
`to_IP` CHAR(16) NOT NULL,
`port_to_IP` INT(8) NOT NULL,
`protocol` CHAR(12) NOT NULL,
`bytes` INT(16) NOT NULL,
`paketov` INT(8) NOT NULL,
PRIMARY KEY (`unic_id`),
KEY `date`(`date`),
KEY `unix_time`(`unix_time`)
) ENGINE=MyISAM COMMENT='Traffic for " . $interface . "-interface'";
# Делаем запрос к БД, если неудачный - помираем с ошибкой
# $dbh->Query("$MySQL_query") or die $Mysql::db_errstr;
# $connect->query("$MySQL_query") or die $Mysql::db_errstr;
$sth = $dbh->prepare("$MySQL_query") or die $Mysql::db_errstr;
$sth->execute;
# строим путь к файлу с траффиком
$file_path = "/var/log/traffic_" . $interface . ".log";
# открываем файло
open TRAFFIC,"$file_path";
# Разбираем построчно
while (<TRAFFIC>)
{
# убираем лишние пробелы
#tr/\s+/ /s;
# Разбиваем по пробелам на переменные
($from_IP,$port_from_IP,$to_IP,$port_to_IP,$protocol,
$bytes,$paketov) = split(/\s+/,$_);
# пихаем траффик в БД
$MySQL_query = "INSERT INTO `" . $interface . "_" . $year . "`
(`date`,`time`,`unix_time`,`from_IP`,`port_from_IP`,`to_IP`,
`port_to_IP`,`protocol`,`bytes`,`paketov`) VALUES (DATE(NOW()),
TIME(NOW()),UNIX_TIMESTAMP(),'" . $from_IP . "',
'" . $port_from_IP . "','" . $to_IP . "','" . $port_to_IP . "',
'" . $protocol . "','" . $bytes . "','" . $paketov . "')";
# Делаем запрос к БД, если неудачный - помираем с ошибкой
# $dbh->Query("$MySQL_query") or die $Mysql::db_errstr;
$sthg = $dbh->prepare("$MySQL_query") or die $Mysql::db_errstr;
$sthg->execute;
}
# создаём директории
system("mkdir -p /var/traffic/" . $year . "/" . $month);
# переносим траффик
$otkuda = "/var/log/traffic_" . $interface . ".log";
$kuda = "/var/traffic/" . $year . "/" . $month . "/summary." . $interface;
system("cat $otkuda >> $kuda");
# очищаем файло
system("cat /dev/null > $otkuda");
# создаём таблицу, где будет храниться траффик
}
}
}
}
# выходим
1;