Erlang 带mysql的Ejabberd花名册
我正在使用exauth和ejabberd对我的用户进行身份验证,但我想使用mysql存储用户信息,如组、名册等 这是我的配置Erlang 带mysql的Ejabberd花名册,erlang,xmpp,ejabberd,Erlang,Xmpp,Ejabberd,我正在使用exauth和ejabberd对我的用户进行身份验证,但我想使用mysql存储用户信息,如组、名册等 这是我的配置 {auth_method, external}. {extauth_program, "/home/hitesh/ejabberd_auth.php"}. {host_config, "subdomain.nodyssey.com", [{auth_method, [external, anonymous]}]}. {odbc_server, {mysql, "loc
{auth_method, external}.
{extauth_program, "/home/hitesh/ejabberd_auth.php"}.
{host_config, "subdomain.nodyssey.com", [{auth_method, [external, anonymous]}]}.
{odbc_server, {mysql, "localhost","ejabberd", "root", "root"}}.
mysql数据库是空的!用户在群聊中仍然有花名册和聊天历史记录,所以看起来mnesia数据库正在使用中!我如何切换到mysql来实现这一点
我做错了什么?用户601836是正确的。我最初误解了这个问题。假设odbc和mysql驱动程序已正确安装,下面是更新的答案:
用户601836是正确的。我最初误解了这个问题。假设odbc和mysql驱动程序已正确安装,下面是更新的答案:
这个问题提出已经有一段时间了。同时,Ejabberd配置文件已更改。要启用外部花名册存储,假设配置了ejabberd和mysql DB以及ejabberd模式,那么在ejabberd.yml中只需执行以下操作:
sql_type: mysql
sql_server: "localhost"
sql_database: "some_database_name"
sql_username: "some_username"
sql_password: "some_password"
要更改mod_花名册:{}
到
这个问题提出已经有一段时间了。同时,Ejabberd配置文件已更改。要启用外部花名册存储,假设配置了ejabberd和mysql DB以及ejabberd模式,那么在ejabberd.yml中只需执行以下操作:
sql_type: mysql
sql_server: "localhost"
sql_database: "some_database_name"
sql_username: "some_username"
sql_password: "some_password"
要更改mod_花名册:{}
到
你创建了mysql数据库吗?您以前是否在花名册中使用过mnesia?如果是,您是否迁移了数据?最后一件事,你在ejabberd.cfg mod_花名册_odbc中启用了吗?@user601836我该怎么做?{mod_-odbc,[]}像这样?是的,再加上禁用mod_-odbc…当然你需要mysql连接所需的所有模块OK,mod_-odbc被禁用,mysql连接正在工作,mysql模块被上传并且工作正常。但它仍然使用mynesia数据库!这是我的配置,对不起。我的意思是你必须禁用mod_花名册…不是mod_odbc…mod_花名册启用意味着使用mnesia支持花名册。你创建了mysql数据库吗?您以前是否在花名册中使用过mnesia?如果是,您是否迁移了数据?最后一件事,你在ejabberd.cfg mod_花名册_odbc中启用了吗?@user601836我该怎么做?{mod_-odbc,[]}像这样?是的,再加上禁用mod_-odbc…当然你需要mysql连接所需的所有模块OK,mod_-odbc被禁用,mysql连接正在工作,mysql模块被上传并且工作正常。但它仍然使用mynesia数据库!这是我的配置,对不起。我的意思是你必须禁用mod_花名册…不是mod_odbc…mod_花名册启用意味着使用mnesia支持花名册。AFAIK身份验证方法不会影响Ejabberd中的花名册。你是对的。我误解了这个问题。更新了答案谢谢,这看起来很有希望。此外,您是否认为所有*_odbc模块都已安装?或者我需要重新安装它们吗?另外,当我运行MYSQL脚本时,我的MYSQL服务器不接受这个“SET table_type=InnoDB”;所以我删除了它并安装了SQL命令的其余部分,它能工作吗?如果没有,那么我如何使用innodb安装mysql!对不起,另一个问题是。但如果您能提供帮助,默认情况下,所有*\u odbc都已安装。但是,如果手动安装ejabberd,则必须指定“-enable odbc”选项。最好使用innodb。不知道如果是myisam引擎会发生什么。您可以运行“show create table one_of_ejabberd_table_name;”查看存储引擎是否为innodb。我猜您使用的是MySQL 5.5,它不再有table_类型的变量。查看AFAIK身份验证方法的解决方案不影响Ejabberd中的排班您是对的。我误解了这个问题。更新了答案谢谢,这看起来很有希望。此外,您是否认为所有*_odbc模块都已安装?或者我需要重新安装它们吗?另外,当我运行MYSQL脚本时,我的MYSQL服务器不接受这个“SET table_type=InnoDB”;所以我删除了它并安装了SQL命令的其余部分,它能工作吗?如果没有,那么我如何使用innodb安装mysql!对不起,另一个问题是。但如果您能提供帮助,默认情况下,所有*\u odbc都已安装。但是,如果手动安装ejabberd,则必须指定“-enable odbc”选项。最好使用innodb。不知道如果是myisam引擎会发生什么。您可以运行“show create table one_of_ejabberd_table_name;”查看存储引擎是否为innodb。我猜您使用的是MySQL 5.5,它不再有table_类型的变量。从中查看解决方案