ejabberd 16.06 + mysql 5.5.50,消息历史记录未保存

时间:2016-08-06 21:30:00

标签: mysql message archive ejabberd history

我使用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'和bare_peer ='misha @ freldo'ORDER BY timestamp
  DESC限制21)AS t OR BY BY时间戳ASC;'失败了:“#42S22Unknown
  '字段列表'中的列'kind'“

我没有在数据库中保存邮件历史记录。

1 个答案:

答案 0 :(得分:0)

将mysql升级到5.6+版可以解决您的问题。

  

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

     

注意:如果您不在数据库中存储邮件存档,则可以   尝试使用旧的5.5版本。您可能需要调整MySQL数据库   架构以应对那些较旧的MySQL版本。

如果要存储邮件历史记录,则MySQL版本5.6.4或更高版本为recommended