Python ejabberd Auth Script 未响应数据库中的更改

Posted

技术标签:

【中文标题】Python ejabberd Auth Script 未响应数据库中的更改【英文标题】:Python ejabberd Auth Script not responding to changes in Database 【发布时间】:2010-09-19 16:09:45 【问题描述】:

我在 ejabberd(XMPP 服务器)中有一个基于 THIS LINK 的身份验证脚本

我稍微修改了脚本,因此它没有设置变量,而是返回真或假。

我正在使用 Ubuntu、mysql、ejabberd 和 Python。

我可以验证数据库中已有的所有记录。但是,当我添加或删除记录(我通过 phpMyAdmin 执行此操作)时,脚本似乎不知道数据库已更改(我在 phpMyAdmin 中删除了一个用户,它仍然对用户进行身份验证)。脚本识别新记录的唯一时间是我重新启动或强制重新加载 ejabberd 服务器时。我已经被告知这不是 mySQL 缓存问题。我确保关闭了 ejabberd 的外部身份验证缓存。

这就是我现在能想到的。如果我能想到的话,我会添加更多信息。任何帮助表示赞赏。我不知道发生了什么。

补充:我打开了 MySQL 日志,所有的查询都在那里,所以没有跳过查询。

【问题讨论】:

【参考方案1】:

我设法通过将数据库引擎改回 MISAM 而不是 INNODB 来解决这个问题。但我想知道这是否可以为 INNODB 修复。

编辑:要在 innodb 中修复它,请将 autocommit 设置为 true

【讨论】:

以上是关于Python ejabberd Auth Script 未响应数据库中的更改的主要内容,如果未能解决你的问题,请参考以下文章

Ejabberd auth http 查询到 django 服务器未经身份验证

Ejabberd - ejabberd_auth_external:失败:103调用'check_password'时外部认证程序失败

Ejabberd,Python:检查用户,如果没有创建

Python 和 EJABBERD/XMPP [关闭]

来自 xtalk.py 的 Python-XMPP 回溯

Ejabberd 聊天服务集成