【问题标题】:ejabberd 16.06 + mysql 5.5.50, message history is not savedejabberd 16.06 + mysql 5.5.50,不保存消息历史
【发布时间】:2016-12-13 00:41:21
【问题描述】:

我使用ejabberd 16.06 + mysql 5.5.50,消息历史没有保存。

我的 ejabberd.yml:

## MySQL server:

odbc_type: mysql 
odbc_server: "freldo"
odbc_port: 3306
odbc_database: "ejabberd"
odbc_username: "ejabberd" 
odbc_password: "ejabberd"

modules: 
... 
mod_mam: 
   db_type: odbc 
   default: always

对于数据库结构的形成,我使用了: mysql.sql

我收到一个错误:

@ejabberd_sql:check_error:1039 SQL 查询'SELECT timestamp, xml, peer,
kind, nick FROM (SELECT timestamp, xml, peer, kind, nick FROM archive
WHERE username='test' and bare_peer='misha@freldo' ORDER BY timestamp
DESC 限制 21) AS t ORDER BY 时间戳 ASC;'失败:“#42S22未知
“字段列表”中的“种类”列”

我没有在数据库中保存消息历史记录。

【问题讨论】:

  • 归档表中不存在种类列名。

标签: mysql message archive ejabberd history


【解决方案1】:

将你的mysql升级到5.6+版本应该可以解决你的问题。

ejabberd 在 InnoDB 中使用 FULLTEXT 索引。因此,您需要 MySQL 5.6 或更高版本可与 ejabberd 一起使用。

注意:但是,如果您不将消息存档存储在数据库中,您可以 尝试使用旧的 5.5 版本。您可能需要适配 MySQL 数据库 架构来应对那些较旧的 MySQL 版本。

如果要存储消息历史记录,MySQL 5.6.4 或更高版本是recommended

【讨论】:

  • openfire 继续前进并忘记了这些问题。感谢您的帮助。
猜你喜欢
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 1970-01-01
  • 2021-02-21
  • 2016-05-12
  • 2010-09-21
  • 1970-01-01
相关资源
最近更新 更多