Как я могу подключиться к базе данных Ejabberd Mnesia с помощью отдельного скрипта? - PullRequest
2 голосов
/ 10 февраля 2012

Я пытаюсь вставить данные о присоединении в базу данных Ejabberd Mnesia из отдельного скрипта.Я новичок в Erlang, и хотя я могу понять, как создать и использовать отдельную базу данных Mnesia, я не могу понять, как подключиться к ejabberd.Использование того же «-mnesia dir», по-видимому, недостаточно.

Ответы [ 2 ]

5 голосов
/ 11 февраля 2012

Вопрос сводится к вопросу о том, как выполнять вызовы rpc в Erlang.

  1. Убедитесь, что ejabberd работает с полным именем хоста или IP-адресом для части хостаузел.Это указано в моей установке как EJABBERD_NODE в /etc/ejabberd/ejabberdctl.cfg.Если вам нужно изменить имя хоста на этом шаге, обратитесь к https://git.process -one.net / ejabberd / mainline / blobs / raw / v2.1.10 / doc / guide.html # htoc79 («Изменить компьютер»Имя хоста ").

  2. Запустите вашу оболочку или скрипт с -name или -sname и используйте хост с тем же ограничением, что и выше.

  3. Вы готовы использовать встроенный RPC Эрланга.Например:

(из вашей оболочки или скрипта)

Cookie = 'YOUR_EJABBERD_COOKIE'. % mine was found in /var/lib/ejabberd/.erlang.cookie
EjabberdNode = 'ejabberd@127.0.0.1'. % or whatever you set as EJABBERD_NODE
erlang:set_cookie(EjabberdNode, Cookie).
net_adm:ping(EjabberdNode).
rpc:call(EjabberdNode, mnesia, system_info, [tables]).
2 голосов
/ 31 июля 2013

просто используйте команду ejabberdctl debug

mnesia:info(). %to overview mnesia 
mnesia:schema(schema). %see table named schema`s detail
...