早在9月17日,我在我父亲仍然支付的(debian 9-)服务器上安装了一个ejabberd-instance,但不再使用了。最初使用它的小圈子很快就长大了,现在我们几百个人在聊天。
时间已到了更新ejabberd(我安装了16.09-4),因为我们想要保持安全,并能够享受所有最新的口哨和钟声。我认为一些简单的'apt-get升级' -magic可以做到这一点,但是男孩,我错了。
我查看了文档(Specific version upgrade notes)并尝试按照其中描述的步骤更新到17.03。 这些更新失败了很多(缺少链接到/ usr / sbin /导致无法在更新后重新启动服务器。添加符号链接没有帮助。我相信我选择安装到/ opt /去年,这可以解释原因)。
由于我对MySQL有一些经验,而且没有Mnesia的任何经验,我也在一开始就决定添加" default_db:SQL"在我的ejabberd.yml文件中。我(错误地)假设所有数据都将存储在MySQL-DB中,而不再存储在Mnesia中。这似乎不是这样的:我看到Mnesia中的所有注册用户(使用ejabberdctl),但只是MySQL中完整列表的一部分。
我想我的问题有两个:
答案 0 :(得分:0)
从16.09-4更新到最新版本的最有效方法是什么?
由于您对安装的内容和位置,链接,路径等方面的问题存在某种混淆,我建议将其作为最有效的"一个有许多步骤的解决方案,但至少可以随心所欲地工作:
首先处理旧的:
现在出现了新的一个:
现在恢复旧信息
当然,有更简单,更快速的更新方式,但您的特殊情况需要采取特殊步骤。
如何完全避免使用Mnesia并仅使用MySQL?
为什么要不惜一切代价避免它? ejabberd中的一些东西需要它,比如客户端会话,内部路由,命令......其他东西可以移动到MySQL,如名册,密码,MUC,vcards ......
并且,相关:如何将所有现有的Mnesia数据推送到MySQL?
您可以将许多模块配置为使用sql而不是mnesia,然后运行export2sql命令,该命令会生成一个* .sql文件,您将导入到新的MySQL数据库中。之后,您可以使用WebAdmin删除mnesia表的内容。