ejabberd在ubuntu上运行,版本是2.1.13,只有一个节点,没有分发,我想在 ejabberdctl debug shell中查询它的mnesia数据库
我尝试在 ejabberdctl debug shell中使用 tv:start(),但它返回
undefined function tv:start/0
我也试过
Cookie = 'MY_COOKIE'.
EjabberdNode = 'ejabberd@localhost'.
erlang:set_cookie(EjabberdNode, Cookie).
** exception error: distribution_not_started
in function auth:set_cookie/2 (auth.erl, line 119)
net_adm:ping(EjabberdNode).
rpc:call(EjabberdNode, mnesia, system_info, [tables]).
正如你所看到的,我发现错误似乎是分发。
以及如何使用像mysql shell这样的shell查询mnesia中的表?
答案 0 :(得分:3)
这里我的第一个节点是 ejabberd @ localhost ,为了访问第一个节点的mnesia,我们构建另一个节点 test @ localhost whitch生成一个带有第一个节点的集群,然后你可以访问mnesia。
命令:
erl -sname test -mnesia dir '"/tmp/"' -mnesia extra_db_nodes "['ejabberd@ubuntu']" -s mnesia
注意:-sname test,必须与第一个节点名称不一样,这里是 ejabberd 然后通过命令启动mnesia
mnesia:start().
然后你可以通过命令检查mnesia
mnesia:info().
祝你好运〜