Jump to content

Переход на Mysql


Recommended Posts

Вобщем так

-слил новый СТГ stg-2.405.9.8.src.tgz

-сделал ./build

-нашел конвертор

-сделал ./build

-настроил конфиг

запустил конвертор на что он мне ответил следующее

 ./convertor
         main.cpp > 10:40:18 > Start
   file_store.cpp > 10:40:18 > FILES_STORE_SETTINGS::ParseSettings
   file_store.cpp > 10:40:18 > workDir = /var/stargazer
         main.cpp > 10:40:18 > Importing admins:
         main.cpp > 10:40:18 >          - admin
         main.cpp > 10:40:18 >          - serg
         main.cpp > 10:40:18 > Importing tariffs:
         main.cpp > 10:40:18 >          - 50
         main.cpp > 10:40:18 >          - STBUR
         main.cpp > 10:40:18 >          - 100
         main.cpp > 10:40:18 >          - 150
         main.cpp > 10:40:18 >          - 200
         main.cpp > 10:40:18 >          - 2000
         main.cpp > 10:40:18 >          - unlim
         main.cpp > 10:40:18 > Importing services:
         main.cpp > 10:40:18 > Importing corporations:
         main.cpp > 10:40:18 > Importing users:
         main.cpp > 10:40:18 >          - cons
         main.cpp > 10:40:18 >          - aksel
         main.cpp > 10:40:18 >          - Fedorova
         main.cpp > 10:40:18 >          - Buer
         main.cpp > 10:40:18 >          - tania
         main.cpp > 10:40:18 >          - bpost
         main.cpp > 10:40:18 >          - chingis
         main.cpp > 10:40:18 >          - dema
         main.cpp > 10:40:18 >          - evgeniy
         main.cpp > 10:40:18 >          - evgeniya
         main.cpp > 10:40:18 >          - hotkak
         main.cpp > 10:40:18 >          - la
         main.cpp > 10:40:18 >          - larisa
         main.cpp > 10:40:18 >          - mironova
         main.cpp > 10:40:18 >          - nadya
         main.cpp > 10:40:18 >          - natasha
         main.cpp > 10:40:18 >          - oyuna
         main.cpp > 10:40:18 >          - serg
         main.cpp > 10:40:18 >          - seseg
         main.cpp > 10:40:18 >          - itog_trafika
         main.cpp > 10:40:18 >          - tuyana
         main.cpp > 10:40:18 >          - alonzo
         main.cpp > 10:40:18 >          - tanya
         main.cpp > 10:40:18 >          - tatyana
         main.cpp > 10:40:18 >          - sasha
         main.cpp > 10:40:18 >          - bpost2
         main.cpp > 10:40:18 > Done

Т.е. вроди бы все намана, НО!

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

при старте он мне грит вот такую фигню

2008-05-29 09:29:47 -- Stg v. Stg 2.404
2008-05-29 09:29:47 -- Message queue created successfully. msgKey=5555 msgID=524288
2008-05-29 09:29:47 -- Timer thread started successfully.
2008-05-29 09:29:47 -- Storage plugin: mysql_store v.0.67. Loading successfull.
2008-05-29 09:29:47 -- Cannot read conf for user aksel.
2008-05-29 09:29:47 -- User 'aksel' data not read. Parameter Credit.
2008-05-29 09:29:47 -- USERS: Error: Cannot read users!
2008-05-29 09:29:47 -- Traffcounter: Stop successfull.
2008-05-29 09:29:47 -- Users: Stop successfull.
2008-05-29 09:29:48 -- Queue removed successfully.
2008-05-29 09:29:48 -- StgTimer: Stop successfull.
2008-05-29 09:29:48 -- Stg stopped successfully.

Типа данные не читабельны!!

Почему

Параметр "Кредит" у меня всегда был равен нулю причем у всех зверей ! я его никада даже и не трогал ....

Может быть трабла в том, что версия самого СТГ у меня на много старее чем та версия из которой я взял сам конвертор ??

Не пойму я ничего :)

Link to post
Share on other sites
  • Replies 65
  • Created
  • Last Reply

Top Posters In This Topic

В 2.405 слегка поменялась база (описано в новостях на stg.dp.ua). По этому конвертор создал тебе базу не того формата, что может схавать плагин мускула. А вся проблема там в том, что данные читаются как select * ... - без явного указания полей и порядка. По этому изменения базы портят всю малину.

Как вариант решения - использовать конвертор со старыми плагинами. Для этого пропиши в конфиге конвертора путь к плагинам /usr/lib/stg

Link to post
Share on other sites

Во! Теперь понятно :)

Только я вот думаю есть лы смысл использовать старые плагины ?

т.е. если я счас перейду на новую версию СТГ, то соответственно и БД мне нужна будет именно та которая делается новым конвертором, правильно?

Или же новая версия СТГ схавает всетаки БД сделанную с использованием старых модулей ?

Link to post
Share on other sites

В новости на оффсайте есть ссылка, по которой описано как мигрировать на новую версию со старыми базами. Вот она: http://stg.dp.ua/articles/DB-2.405-Patch-HowTo.txt

В архиве с исходниками в каталоге projects/stargazer/inst/var лежат инкрементные патчи (ALTER'ами) к SQL-базам. Файловая база патчей не требует.

Link to post
Share on other sites

Такс на мускуль я перешел с новой версией..

Все прошло гладенько :)

НО!

с логе пишет вот что !!!!

2008-05-30 14:15:46 -- Executer exited.
2008-05-30 14:15:46 -- All executers exited. Stopping stg.
2008-05-30 14:15:55 -- Stg v. Stg 2.404
2008-05-30 14:15:55 -- Message queue created successfully. msgKey=5555 msgID=262144
2008-05-30 14:15:55 -- Timer thread started successfully.
2008-05-30 14:15:55 -- Storage plugin: mysql_store v.0.67. Loading successfull.
2008-05-30 14:15:55 -- Users started successfully.
2008-05-30 14:15:55 -- Traffcounter started successfully.
2008-05-30 14:15:55 -- Module: 'bpf_cap v.1.0'. Start successfull. 0
2008-05-30 14:15:55 -- Module: 'InetAccess authorizator v.1.2'. Start successfull. 50
2008-05-30 14:15:55 -- Module: 'Always Online authorizator v.1.0'. Start successfull. 70
2008-05-30 14:15:55 -- Module: 'Pinger v.1.01'. Start successfull. 100
2008-05-30 14:15:55 -- Module: 'Stg configurator v.0.07'. Start successfull. 220
2008-05-30 14:15:55 -- Stg started successfully.

 

Все типа хорошо но почему же версию то он показывает старую - Stg v. Stg 2.404!!!????

Это нормально ?

Link to post
Share on other sites
  • 2 months later...

А существует ли в природе конвертор с файл_сторе в мускул для версии 2.404.9.7?

Или только с переходом на последнюю версию?

 

Пробовал применить конвертор из последней версии ,подключив плагины из старой (согласно рекомендациям выше). Но он вываливается с сообщением "Ошибка сегментирования". После этого в базе только те данные, к. там бывают после просто первого запуска стг с сторе_мускул, а именно стандартные админ, клиент и тариф.

 

Конвертор из 2.404.9.7 хочет только файрберд, что для меня не подходит.

Link to post
Share on other sites

Берем исходники нового конвертора. Ложим его в дерево исходников stg версии 2.404.9.7. Собираем. После этого должен работать как часики.

Link to post
Share on other sites

Скопировал, пытаюсь собрать.

При сборке конвертора пишет вот такую хрень:

g++ -c settings.cpp -g3 -Wall -I /home/admin/Distr/stg-2.404.9.7/projects/conver
tor/../../include -DDEBUG -DLINUX
settings.cpp: In member function 'int SETTINGS::ReadSettings()':
settings.cpp:163: error: 'CASEINSENSITIVE' is not a member of 'DOTCONFDocument'
gmake: *** [settings.o] Ошибка 1

 

И вываливается.

Конвертор из версии 2.404.9.7 в этом же дереве каталогов собирается нормально.

 

P.S. В своем дереве каталогов он собирается без проблем.

Link to post
Share on other sites

Да, конечно.

В 405-й была обновлена библиотека DOTCONFpp. В частности - очепятка в слове "CASEINSENSITIVE" - "CASEINSENSETIVE". Замените это слово в указанной строке и все соберется.

Link to post
Share on other sites

Собрался. Но все равно пишет:

 

./convertor
	  main.cpp > 14:01:30 > Start
	  main.cpp > 14:01:30 > Importing admins:
	  main.cpp > 14:01:30 >		  - admin
	  main.cpp > 14:01:30 > Importing tariffs:
	  main.cpp > 14:01:30 >		  - tariff
	  main.cpp > 14:01:30 > Importing services:
	  main.cpp > 14:01:30 > Importing corporations:
	  main.cpp > 14:01:30 > Importing users:
	  main.cpp > 14:01:30 >		  - test
	  main.cpp > 14:01:30 >				 (adding passed)
Ошибка сегментирования

 

В базе есть реальный юзер по "фамилии" test. Может быть это и влияет на результат?

 

# Путь к директории, в которой находятся модули сервера
ModulesPath = /usr/lib/stg

<SourceStoreModule>
# Рабочая директория сервера, тут содержатся данные о тарифах, пользователях
# администраторах и т.д.
WorkDir = /var/stargazer2


# Владелец, группа и права доступа на файлы статистики (stat) пользователя
ConfOwner = root
ConfGroup = wheel
ConfMode = 600


# Владелец, группа и права доступа на файлы конфигурации (conf) пользователя
StatOwner = root
StatGroup = wheel
StatMode = 640

# Владелец, группа и права доступа на лог-файлы (log) пользователя
UserLogOwner = root
UserLogGroup = wheel
UserLogMode = 640

</SourceStoreModule>

<DestStoreModule store_mysql>
# Имя пользователя БД
dbuser = stg

# Пароль пользователя БД
rootdbpass = 123456

# Имя БД на сервере
dbname = stg

# Адрес сервера БД
dbhost = localhost
</DestStoreModule>

 

Имя пользователя и пароль к БД такие и есть (поменяю после переноса). От руки в базу заходит под этими данными. Пути и т.д. естессно указал правильно.

Link to post
Share on other sites

Та же хрень.

Я, кстати, забыл вчера сказать, что пробовал оба варианта. Менял путь к библиотекам, пересобирал (на всякий случай) конвертор и проверял. В обоих случаях пишет эту ошибку.

 

Я даже проверил такой вариант. Удалил все папки с исходниками. Заново распаковал и сразу же подменил конвертор. Поправил ему конфиг. После этого собрал весь проект, а потом отдельно конвертор. И все равно та же ошибка.

 

Неужели сервак обновлять?...

Link to post
Share on other sites

Тогда запусти из-под gdb:

# export LD_LIBRARY_PATH=../../lib
# gdb ./convertor
...
(gdb) r ./
...

и когда упадет - покажи вывод команды bt.

Link to post
Share on other sites

This GDB was configured as "i586-suse-linux"...Using host libthread_db library
/lib/libthread_db.so.1".

(gdb) r
Starting program: /data1/admin/Distr/stg-2.404.9.7/projects/convertor/convertor

Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1210779424 (LWP 20097)]
	  main.cpp > 11:11:47 > Start
	  main.cpp > 11:11:47 > Importing admins:
	  main.cpp > 11:11:47 >		  - admin
	  main.cpp > 11:11:47 > Importing tariffs:
	  main.cpp > 11:11:47 >		  - tariff
	  main.cpp > 11:11:47 > Importing services:
	  main.cpp > 11:11:47 > Importing corporations:
	  main.cpp > 11:11:47 > Importing users:
	  main.cpp > 11:11:47 >		  - test
	  main.cpp > 11:11:47 >				 (adding passed)

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1210779424 (LWP 20097)]
0x08051e09 in main (argc=1, argv=0xbf883c54) at main.cpp:343
343	 delete toStore;

 

Starting program: /data1/admin/Distr/stg-2.404.9.7/projects/convertor/convertor
./
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1211615008 (LWP 20950)]
	  main.cpp > 11:16:46 > Start
DOTCONF++: required option 'ModulesPath' not specified
	  main.cpp > 11:16:46 > Error reading settings

Program exited with code 0377.

 

хм-м..

Судя по всему, не указан параметр ModulesPath.

ModulesPath = ../stargazer/modules

Это же оно? Проверил наличие этой папки, проверли ее содержимое. Там около десятка симлинков. Проверил интересующие - указывают на реальные файлы библиотек. Странно...

 

Мож его как-то в ковычки надо брать? Ничего не пойму.

Link to post
Share on other sites

1. А где же bt?

2. Судя по тому что упало при delete toStore - преобразование базы завершено. Падения на деструкторе есть, я это признаю, я знаю их неявную причину, я не могу предложить воркераунда и обещаю исправить это в будущих версиях. С другой стороны - этот сегфолт не портит данных и не влияет на результаты работы программы.

3. Да, с параметром ошибся. Но в любом случае - тебе виднее где у тебя конфиг лежит :rolleyes:

Link to post
Share on other sites

(gdb) r ./
Starting program: /data1/admin/Distr/stg-2.404.9.7/projects/convertor/convertor
./
Failed to read a valid object file image from memory.
[Thread debugging using libthread_db enabled]
[New Thread -1211619104 (LWP 23898)]
	  main.cpp > 12:21:56 > Start
DOTCONF++: required option 'ModulesPath' not specified
	  main.cpp > 12:21:56 > Error reading settings

Program exited with code 0377.
(gdb) bt
No stack.
(gdb)

 

1. Это то?

 

2. Я ж уже говорил - база после этого такая, как если бы я впервые ставил стг и просто запустил ее. Т.е. в ней только стандартный админ, тариф и пользователь. И все. Обрати внимание на то, что он пытается проимпортировать именно стандартные данные. И они действительно в базе после этого есть. Но у меня хранилище на без малого 800 человек, 5 админов и 11 тарифов. Где это все?

 

3. А что с параметром не так? Куда именно он должен показывать? На уже установленный модули, или только на скомпилированные? Или это вообще не то, и показывать надо другое место? Поподробнее, плиз.

Link to post
Share on other sites

1. Это не то, т.к. небыло сегфолта, а было корректное завершение работы. Но уже и не нужно, все что хотел - я увидел.

2 и 3. Знать неправильные настройки.

 

Поподробнее - в документации.

Link to post
Share on other sites

Ну тогда ткни носом :rolleyes:

 

Цитирую доку:

Глобальный параметр

ModulesPath указывает местонахождение модулей хранилища. Далее

следуют две секции: <SourceStoreModule> и <DestStoreModule>. Они

описывают, соответственно, источник данных и их приемник.

 

...

 

Пример файла конфигурации:

# Путь к директории, в которой находятся модули сервера

ModulesPath = ../stargazer/modules

 

Ставил сервер со всеми путями по умолчанию. А именно, файлы конфигурации, скрипты лежат в /etc/stargazer. Файловое хранилище лежит по пути /var/stargazer (/var/stargazer2 - это копия, на случай какого-нить сбоя и т.д., чтобы ничего в оригинале не повредить). Установленные библиотеки стг лежат по пути /usr/lib/stg. По пути, указанному в доке (../stargazer/modules) лежит вот что:

 

ls
mod_auth_ao.so	mod_cap_ipq.so  mod_remote_script.so
mod_auth_ia.so	mod_conf_sg.so  mod_store_files.so
mod_cap_ether.so  mod_ping.so	 mod_store_mysql.so

где каждый симлинк - ярлык на реальный файл, к. также лежит на своем месте в дереве каталогов исходников. В частности на интересуют два последних - mod_store_files.so и mod_store_mysql.so.

Вот содержимое этих ссылок:

mod_store_files.so -> stg-2.404.9.7/projects/stargazer/plugins/store/files/mod_store_files.so

mod_store_mysql.so -> stg-2.404.9.7/projects/stargazer/plugins/store/mysql/mod_store_mysql.so

 

База в мускуле создана со стандартными настройками - юзер stg 123456, база stg.

 

Пример файла конфигурации конвертора приведен в одном из постов выше.

 

Что еще пропустил?

 

Вопрос. Почему он пытается сунуть в базу не те данные, к. я ему указал, а какие-то стандартные (откуда он их, кстати, берет?)?

Link to post
Share on other sites

И сам запутался и меня запутал. Вот смотри:

(gdb) r
Starting program: /data1/admin/Distr/stg-2.404.9.7/projects/convertor/convertor

Тут ты запустил его без указания конфига. По этому он взял его из стандартного места: ./convertor.conf

Код ниже показывает, что источником данных послужила пустая дэфолтная база.

(gdb) r ./
Starting program: /data1/admin/Distr/stg-2.404.9.7/projects/convertor/convertor
./

Тут ты запускаеш его с явным указанием конфига. Да, это уже моя ошибка была, т.к. сам конфиг не указан - указан только путь к нему. Но в отличие от stargazer он не ищет файл с конфигом по указанному пути, а ищет указанный файл. Такой файл не может быть открыт и в нем, соответственно, отсутствует параметр ModulesPath.

Далее, по поводу данных. Конвертор не изобретает ничего нового. Внутри него нет никаких стандартных данных. Он берет данные из Source и переносит их в Dest.

Link to post
Share on other sites

Блин, или лыжи не едут....

 

Вот мой конфиг:

#ModulesPath=../stargazer/modules	//Пробовал оба варианта
ModulesPath=/usr/lib/stg					 //В обоих случаях результат один и тот же
<SourceStoreModule store_files>
WorkDir =/var/stargazer2
ConfOwner = root
ConfGroup = root
ConfMode = 600
StatOwner = root
StatGroup = root
StatMode = 640
UserLogOwner = root
UserLogGroup = root
UserLogMode = 640
</SourceStoreModule>
<DestStoreModule store_mysql>
dbuser = stg
rootdbpass = 123456
dbname = stg
dbhost = localhost
</DestStoreModule>

 

Раскомментировал вывод содержимого параметров, к. он берет из конфига

 

Объясни мне, что тут происходит?

isrv:/home/admin/Distr/stg-2.404.9.7/projects/convertor # ./convertor ./convertor.conf
	  main.cpp > 10:43:37 > Start
  settings.cpp > 10:43:37 > param 'WorkDir'
  settings.cpp > 10:43:37 > value '/var/stargazer2'
  settings.cpp > 10:43:37 > param 'ConfOwner'
  settings.cpp > 10:43:37 > value 'root'
  settings.cpp > 10:43:37 > param 'ConfGroup'
  settings.cpp > 10:43:37 > value 'root'
  settings.cpp > 10:43:37 > param 'ConfMode'
  settings.cpp > 10:43:37 > value '600'
  settings.cpp > 10:43:37 > param 'StatOwner'
  settings.cpp > 10:43:37 > value 'root'
  settings.cpp > 10:43:37 > param 'StatGroup'
  settings.cpp > 10:43:37 > value 'root'
  settings.cpp > 10:43:37 > param 'StatMode'
  settings.cpp > 10:43:37 > value '640'
  settings.cpp > 10:43:37 > param 'UserLogOwner'
  settings.cpp > 10:43:37 > value 'root'
  settings.cpp > 10:43:37 > param 'UserLogGroup'
  settings.cpp > 10:43:37 > value 'root'
  settings.cpp > 10:43:37 > param 'UserLogMode'
  settings.cpp > 10:43:37 > value '640'
  settings.cpp > 10:43:37 > param 'dbuser'
  settings.cpp > 10:43:37 > value 'stg'
  settings.cpp > 10:43:37 > param 'rootdbpass'
  settings.cpp > 10:43:37 > value '123456'
  settings.cpp > 10:43:37 > param 'dbname'
  settings.cpp > 10:43:37 > value 'stg'
  settings.cpp > 10:43:37 > param 'dbhost'
  settings.cpp > 10:43:37 > value 'localhost'
	  main.cpp > 10:43:37 > Importing admins:
	  main.cpp > 10:43:37 >		  - admin
	  main.cpp > 10:43:37 > Importing tariffs:
	  main.cpp > 10:43:37 >		  - tariff
	  main.cpp > 10:43:37 > Importing services:
	  main.cpp > 10:43:37 > Importing corporations:
	  main.cpp > 10:43:37 > Importing users:
	  main.cpp > 10:43:37 >		  - test
	  main.cpp > 10:43:37 >				 (adding passed)
Ошибка сегментирования

 

Ради научного эксперименту просмотрим содержимое WorkDir:

 

isrv:/home/admin/Distr/stg-2.404.9.7/projects/convertor #ls /var/stargazer2
admins  corps  deleted_users  services  tariffs  users
isrv:/home/admin/Distr/stg-2.404.9.7/projects/convertor # ls /var/stargazer2/admins
alexander.adm  oleg.adm  olga.adm  ruslan.adm  yura.adm
isrv:/home/admin/Distr/stg-2.404.9.7/projects/convertor #

 

Мож мне какой-то бета вариант конвертора достался, в к. какой параметр не указывай, все равно берет дефолт? Я уже не знаю, что и думать...

Link to post
Share on other sites

Слушай, я даже не знаю что тебе сказать. То что ты пишешь - смесь мистики и научной фантастики. Я даже представить себе не могу, как такое получается.

Link to post
Share on other sites

Представь мое состояние.

 

Я сам админ, и поэтому понимаю состояние человека, когда его донимают тупыми вопросами, вроде как я сейчас тебя донимаю. Поэтому прошу прощения. Но факт есть налицо. И что с ним делать ума не приложу.

 

Исходники взял на stg.dp.ua. Мож там и правда кривой дистр? Тогда где взять нормальный?

 

Или вообще вопрос по-другому поставлю - Как мне перейти на мускул вообще (кроме ручного набора 787 юзеров)? Если для этого надо обновить сервер, значит обновлю. Но хотелось бы быть уверенным, что после этого я смогу сконвертировать базу.

 

Всем спасибо за помощь и поддержку )).

Link to post
Share on other sites

Вопросы не тупые. Просто я не вижу логического объяснения такому поведению программы.

Могу попробовать что-то поковырять по ssh. Если что - стучи сюда: madf@jabber.kiev.ua

Link to post
Share on other sites

Смешно-не-смешно, но у меня точно такая же ситуация. Нужно перегнать всю БД (file_store) в MySQL и при использовании конвертера выдает

convertor# ./convertor
	  main.cpp > 17:15:56 > Start
file_store.cpp > 17:15:56 > FILES_STORE_SETTINGS::ParseSettings
file_store.cpp > 17:15:56 > workDir = /var/stargazer
	  main.cpp > 17:15:56 > Importing admins:
	  main.cpp > 17:15:56 >		  - admin
	  main.cpp > 17:15:56 > Importing tariffs:
	  main.cpp > 17:15:56 >		  - tunlim
	  main.cpp > 17:15:56 >		  - earth
	  main.cpp > 17:15:56 >		  - tstudent
	  main.cpp > 17:15:56 >		  - tariff
	  main.cpp > 17:15:56 > Importing services:
	  main.cpp > 17:15:56 > Importing corporations:
	  main.cpp > 17:15:56 > Importing users:
	  main.cpp > 17:15:56 >		  - 06

--------------------------------------------------------

	  main.cpp > 17:15:56 >		  - 12117
	  main.cpp > 17:15:56 >				 (adding passed)
	  main.cpp > 17:15:56 >		  - alexey
	  main.cpp > 17:15:56 >				 (adding passed)
	  main.cpp > 17:15:56 >		  - alyssa
	  main.cpp > 17:15:56 >				 (adding passed)
	  main.cpp > 17:15:56 >		  - 4ikist
	  main.cpp > 17:15:56 >				 (adding passed)
	  main.cpp > 17:15:56 >		  - agent_007
	  main.cpp > 17:15:56 >				 (adding passed)
Segmentation fault

кста, сборку converter'a брал на офф.сайте.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...