0

我已经使用下面的参考链接在我的本地系统中安装了 ejabberd 和 mysql。我正在使用 php 进行服务器端使用。

https://medium.com/modern-sysadmin/how-to-install-ejabberd-18-01-xmpp-server-with-mysql-on-ubuntu-16-04-f0faceddf2e

一切正常。

我正在使用这个 PHP 脚本https://github.com/cweiske/xmpphp/

但问题是当我从 ejabberd 网络管理员添加用户时,它非常适合发送消息。但是当我直接在mysql用户表中添加用户时,两个用户都以相同的格式保存在用户表中,但是当我使用直接添加的用户名发送消息时它不起作用。

在终端中出现以下错误

09:49:48.239 [error] Supervisor ejabberd_c2s_sup had child undefined started with {ejabberd_c2s,start_link,undefined} at <0.2500.0> exit with reason no function clause matching base64:decode_binary(<<>>, <<"×mø">>, 57, 58) line 368 in context child_terminated

15:22:43.281 [error] CRASH REPORT Process <0.5360.0> with 0 neighbours exited with reason: no function clause matching base64:decode_binary(<<>>, <<"×mø">>, 57, 58) line 368 in p1_server:terminate/7 line 878

帮助我 ejabberd 如何与 mysql 用户一起工作?Ejabberd 将用户数据保存在其他任何地方吗?

4

1 回答 1

0

但是当我直接在mysql用户表中添加用户时

我有两个想法,所以你可以调查你的问题:

  • 如果您创建一个使用纯 ascii 字符的帐户,例如“user123”而不是“×mø”,它会工作还是失败?

  • 如果您使用“ejabberctl register”命令行注册帐户,而不是直接在数据库中插入元素,它会工作还是失败?

我怀疑问题出在插入数据库时​​的用户名或密码编码中。

于 2019-11-11T10:50:24.477 回答