Перейти до

Stg-web With Mysql


Рекомендованные сообщения

Я как раз не вижу, что он валится на мускуле.

По бектрейсу - как раз в мускуле. Т.к. запрос віглядит вполне безобидно:

#8  0xb7497c66 in MYSQL_STORE::MysqlQuery (this=0x80e8860, sQuery=0xb3173954 "SELECT * FROM messages WHERE login='Gall1'")
at mysql_store.cpp:306

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 972
  • Створено
  • Остання відповідь

Top Posters In This Topic

Да в мускуле он валится, и как раз на таблице мессаг )))

Дело в том что в таблицу мессаг иногда вставляются не все данные, тоесть логин и дату вставил, а вот остальные поля нет, соответственно БД профигарила их дефолтом, а дефолт там NULL ))) Аот и валимся мы на этих нулах ))

Кстати, там много таких заморочек с таблицами :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Проверил в работе.

Онлайн около 40 юзеров.

Отработал честно больше двух часов.

Вроде все норм, кроме одного.

Начались проблемы с таблицей users, а именно

Поля Userdata начали себя вести неадекватно))

У меня в поле userdata1 указан номер договора с абонентом, Так вот при каждом рестарте данные из этого поля смещаются на 1.... Тоесть после двух рестартов номер договора у меня уже в поле userdata3.

Что тут еще не так??

Еще, у юзеров у которых стоит смена тарифа, в поля userdata1 и 2 теперь прописало значения из поля tariffchange.

Какие будут мнения?

Ведь после 6 или 7 рестарта данные начнут исчезать из этих полей..

ИМХО не есть гуд.

Ссылка на сообщение
Поделиться на других сайтах
По бектрейсу - как раз в мускуле. Т.к. запрос віглядит вполне безобидно:

if (!(res=mysql_store_result(sock)))
{
       syslog(LOG_CRIT,"Couldn't GetMessageHdrs.");
       //errorStr = "Couldn't GetMessageHdrs.";
       return MysqlReConnect();
}

 

У меня при отладке в основном падал на строчках errorStr = "aaaa" + str + "bbbb" .... хотя по логике падать не должно, возможно переменная errorStr одновременно конкурентно используется разными потоками ?

Ссылка на сообщение
Поделиться на других сайтах
Проверил в работе.

Онлайн около 40 юзеров.

Отработал честно больше двух часов.

Вроде все норм, кроме одного.

Начались проблемы с таблицей users, а именно

Поля Userdata начали себя вести неадекватно))

У меня в поле userdata1 указан номер договора с абонентом, Так вот при каждом рестарте данные из этого поля смещаются на 1.... Тоесть после двух рестартов номер договора у меня уже в поле userdata3.

Что тут еще не так??

Еще, у юзеров у которых стоит смена тарифа, в поля userdata1 и 2 теперь прописало значения из поля tariffchange.

Какие будут мнения?

Ведь после 6 или 7 рестарта данные начнут исчезать из этих полей..

ИМХО не есть гуд.

 

Есть такое дело... мой косяк, прошу прощения.

Для исправления надо изменить одну строку в mysql_store.cpp

 

найти это:

for (int i = 0; i < USERDATA_NUM; i++)

{

conf->userdata = row[14+i];

}

 

и заменить на это:

for (int i = 0; i < USERDATA_NUM; i++)

{

conf->userdata = row[15+i];

}

Ссылка на сообщение
Поделиться на других сайтах

Не плохо бы было в код stg-web добавить что то типо этого

CREATE TABLE хххх (


		) TYPE=MyISAM DEFAULT CHARSET=".$sql["charset"].";";

 

А то при создании таблиц stg-web, выставляется не верное сравнение, и запросы с JOIN из за различия кодировок, например:

SELECT a.*, ae.* FROM admins a LEFT JOIN web_stg_admins ae ON a.login=ae.login WHERE a.login='admin'

Отдают ошибку

Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '='

Отсюда траблы типа

У Вас недостаточно прав для доступа в этот раздел!

Ссылка на сообщение
Поделиться на других сайтах

2Alferov

Так ведь не должно быть?

При внесении средст с помощью конфигуратора в стг-веб "Статистика, история » Деньги" записи не отображаются

При этом если вносить через stg_web то все ок.

Stargazer в таблицу logs_%m_%y пишет.

Из запроса

SELECT count(a.unid) AS total FROM actions a LEFT JOIN users u ON a.login=u.login WHERE a.unid<>'' AND (a.time_stop>='2008-07-01 00:00:00' OR a.time_stop='0000-00-00 00:00:00') AND a.time_start<'2008-08-01 00:00:00' AND a.time_start>='2008-06-30 23:59:59' AND a.action LIKE 'pay_%' AND a.action != 'pay_credit_down'

видно, что STG_WEB инфу о платежах берет из таблички `actions` в которую старгейзер ничего не пишет.

 

Как бы это пофиксить?

Ссылка на сообщение
Поделиться на других сайтах

Нашел причину постоянного падения stg-2.405.9.8 с модулем mysql_mutex-0.68_STG-WEB

Ошибка закралась в функцию WriteDetailedStat

sprintf(qbuf,"INSERT INTO detailstat_%02d_%4d SET login='%s', day=%d, startTime='%s', endTime='%s',",
	lt->tm_mon+1, lt->tm_year+1900,
	login.c_str(),
	lt->tm_mday,
	stTime.c_str(),
	endTime.c_str()
	);

int retRes;
map<IP_DIR_PAIR, STAT_NODE>::const_iterator stIter;
stIter = statTree->begin();

while (stIter != statTree->end())
{
			sprintf(param,"IP='%s', dir=%d, down=%lld, up=%lld, cash=%f, sess_id='%s'",
							inet_ntostr(stIter->first.ip),
							stIter->first.dir,
							stIter->second.down,
							stIter->second.up,
							stIter->second.cash,
							sessionID.c_str()
					);
			strcat(qbuf,param); //Тут косяк

printfd(__FILE__, "Query %s\n", qbuf);

			if( (retRes = MysqlQuery(qbuf)) )
			{
					errorStr = "Couldn't insert data in WriteDetailedStat.";
					return MysqlReConnect();
			}

 

Переменные qbuf и param склеиваются, потом снова склеиваются и получается корявый запрос.

(Только в случае, если в statTree больше 1 элемента.)

 

Решил проблему следующим образом.

 

-sprintf(qbuf,"INSERT INTO detailstat_%02d_%4d SET login='%s', day=%d, startTime='%s', endTime='%s',",
-		lt->tm_mon+1, lt->tm_year+1900,
-		login.c_str(),
-		lt->tm_mday,
-		stTime.c_str(),
-		endTime.c_str()
-		);
while (stIter != statTree->end())
{
-				sprintf(param,"IP='%s', dir=%d, down=%lld, up=%lld, cash=%f, sess_id='%s'",
+			   sprintf(qbuf,"INSERT INTO detailstat_%02d_%4d SET login='%s', day=%d, startTime='%s', endTime='%s', IP='%s', dir=%d, down=%lld, up=%lld, cash=%f, sess_id='%s'",
+							   lt->tm_mon+1,
+							   lt->tm_year+1900,
+							   login.c_str(),
+							   lt->tm_mday,
+							   stTime.c_str(),
+							   endTime.c_str(),
							 inet_ntostr(stIter->first.ip),
							 stIter->first.dir,
							 stIter->second.down,
							 stIter->second.up,
							 stIter->second.cash,
							 sessionID.c_str()
					);

-			   strcat(qbuf,param); 

			if( (retRes = MysqlQuery(qbuf)) )
			{
					errorStr = "Couldn't insert data in WriteDetailedStat.";
					return MysqlReConnect();
			}

Ссылка на сообщение
Поделиться на других сайтах

Убил роутер установкой ftp, пришлось переустанавливать :) , ну это то дело не хитрое. Вроде все работает, кроме stg-web, не отображается часть интерфейса (даже часы), тогда помню ставил какой то пакет (cистема Debian), а щас хоть убей не могу вспомнить. Уже кучу разных переставил.

 

Может кто подскажет?

 

scrin1

scrin2

Ссылка на сообщение
Поделиться на других сайтах
Убил роутер установкой ftp, пришлось переустанавливать :) , ну это то дело не хитрое. Вроде все работает, кроме stg-web, не отображается часть интерфейса (даже часы), тогда помню ставил какой то пакет (cистема Debian), а щас хоть убей не могу вспомнить. Уже кучу разных переставил.

 

Может кто подскажет?

 

scrin1

scrin2

Мне кажется, что чтото с config.php

а точнее с путями

апач не видит скрипт в корне сайта

Ссылка на сообщение
Поделиться на других сайтах
Мне кажется, что чтото с config.php

а точнее с путями

апач не видит скрипт в корне сайта

 

$sql["host"]   = "localhost";		   
$sql["base"]   = "stg_database";			   
$sql["login"]  = "root";		   
$sql["passwd"] = "Скрыто";	   
$sql["charset"]= "cp1251";			
$sql["tbl_config"] = "web_stg_config";

// STG-Server Settings
$stg_host	   = "127.0.0.1";	  
$stg_port	   = "5555";			 
$stg_admin	  = "admin";		   
$stg_password   = "Скрыто";		  
$stg_root_path  = "/var/www/"; 
$stg_KK_path	= "/etc/stargazer/sgconf_xml";

 

консольный конфигуратор тоже на месте и рабочий т.к. скрип добавления трафика нормально отрабатывает

 

пакеты такие стоят: (мож поможет в решении проблеммы)

apache2 apache2.2-common apache2-mpm-prefork apache2-utils

mysql-admin mysql-admin-common mysql-client mysql-client-5.0 mysql-common mysql-server mysql-server-5.0

php5 php5-cli php5-common php5-gd php5-mcrypt php5-mysql phpmyadmin php-pear

Ссылка на сообщение
Поделиться на других сайтах

Сайт не видит файла script.js, в котором находятся все java-скрипты. Лежит он в корне. Не видит его сайт скорее всего по причине неверного параметра $stg_root_path

Ссылка на сообщение
Поделиться на других сайтах

$stg_root_path = "/var/www/";

 

borin@stargazer:/var/www$ ls -l

итого 28

-rw-r--r-- 1 borin borin 0 2005-08-10 02:00 favicon.ico

drwxr-xr-x 4 borin borin 4096 2008-06-21 18:26 includes

-rw-r--r-- 1 borin borin 42 2007-05-07 11:33 index.php

lrwxrwxrwx 1 root root 21 2008-07-29 08:57 phpmyadmin -> /usr/share/phpmyadmin

drwxr-xr-x 3 borin borin 4096 2008-06-21 00:48 root

-rw-r--r-- 1 borin borin 5218 2007-10-28 18:02 script.js

-rw-r--r-- 1 borin borin 1639 2007-03-20 02:00 style.css

drwxr-xr-x 2 borin borin 4096 2008-06-21 00:48 user

 

скрипт на месте, $stg_root_path указывает вроде куда положено

Ссылка на сообщение
Поделиться на других сайтах
прописал так толку ноль, эта запись тоже самое только вид с боку :)

// STG-Server Settings

$stg_host = "192.168.51.222"; // IP-адрес сервера STG

$stg_port = "5555"; // Порт сервера STG

$stg_admin = "user"; // Логин администратора STG (для раздела "пользователи")

$stg_password = "123123123"; // Пароль администратора STG (для раздела "пользователи")

$stg_root_path = "/var/www/billing/"; // Полный путь до корневой директории сайта

$stg_KK_path = "/var/www/run/sgconf_xml"; //Полный путь до консольного конфигуратора

 

И все прекрасно работает.

Ссылка на сообщение
Поделиться на других сайтах
// STG-Server Settings

$stg_host = "192.168.51.222"; // IP-адрес сервера STG

$stg_port = "5555"; // Порт сервера STG

$stg_admin = "user"; // Логин администратора STG (для раздела "пользователи")

$stg_password = "123123123"; // Пароль администратора STG (для раздела "пользователи")

$stg_root_path = "/var/www/billing/"; // Полный путь до корневой директории сайта

$stg_KK_path = "/var/www/run/sgconf_xml"; //Полный путь до консольного конфигуратора

 

И все прекрасно работает.

 

А чем мой, конфиг отличается от твоего (выше выкладывал)?

У меня с ним 2 месяца все нормально работало, достал из бэкапов. Где-то видимо еще трабла, возможно, что вебке нужен какой-нить пакет, когда первый раз ставил эта трабла тоже была, решил ее минут за 10, а ща время прошло и хоть убей не помню что сделал.

Ссылка на сообщение
Поделиться на других сайтах
А чем мой, конфиг отличается от твоего (выше выкладывал)?

У меня с ним 2 месяца все нормально работало, достал из бэкапов. Где-то видимо еще трабла, возможно, что вебке нужен какой-нить пакет, когда первый раз ставил эта трабла тоже была, решил ее минут за 10, а ща время прошло и хоть убей не помню что сделал.

$stg_host = "192.168.51.222"; // IP-адрес сервера STG

а не 127.0.0.1

Ссылка на сообщение
Поделиться на других сайтах
а настройки php соответствуют требованиям доки по установке? :)

 

Точна кто читает мануал при установке :)

 

register_globals=on вот где загвоздка

 

README правит миром.....

 

Спасиб всем за помощь.

Ссылка на сообщение
Поделиться на других сайтах

Прямо тогда я и поставил эту штуку на тестовый прогон с 1 юзером - мну любимым

Выложил протестированную сборку stg-2.405.9.8_STG-WEB с модулем mysql_store_mutex-0.68_STG_WEB

 

Качать здесь

 

И все было хорошо и счастливо до вчерашних нулей ))) Авторизатор с криком ЕЕЕЙ ушел в даун.

сервер продолжал при этом работать... проверка показала что была снята абонплата, что-то около 8,7 * 10 в 165 степени. Все дальнейшие попытки поиграться с базой... выставить нужные значения и потом запустить сервер натыкались на аналогичные проблемы. И что это за прикол такой? кто-то сталкнулся?

Ссылка на сообщение
Поделиться на других сайтах
Прямо тогда я и поставил эту штуку на тестовый прогон с 1 юзером - мну любимым

 

 

И все было хорошо и счастливо до вчерашних нулей ))) Авторизатор с криком ЕЕЕЙ ушел в даун.

сервер продолжал при этом работать... проверка показала что была снята абонплата, что-то около 8,7 * 10 в 165 степени. Все дальнейшие попытки поиграться с базой... выставить нужные значения и потом запустить сервер натыкались на аналогичные проблемы. И что это за прикол такой? кто-то сталкнулся?

Что за "ЕЕЕЙ" и какие "аналогичные проблемы"?

Ссылка на сообщение
Поделиться на других сайтах
Гость
Эта тема закрыта для публикации сообщений.
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...