ejabberd 16.06 + mysql 5.5.50,未保存消息历史记录 [英] ejabberd 16.06 + mysql 5.5.50, message history is not saved

查看:126
本文介绍了ejabberd 16.06 + mysql 5.5.50,未保存消息历史记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用ejabberd 16.06 + mysql 5.5.50,未保存消息历史记录.

I use ejabberd 16.06 + mysql 5.5.50, message history is not saved.

我的ejabberd.yml:

My 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

for the formation of the database structure, I used: mysql.sql

我得到一个错误:

@ejabberd_sql:check_error:1039 SQL查询'SELECT时间戳记,xml,对等项,
种类,昵称FROM(选择时间戳记,xml,对等体,种类,昵称FROM存档
用户名=测试"和bare_peer ="misha @ freldo"的按时间戳排序
DESC限制21)按时间戳ASC排序.失败:#42S22Unknown
列字段列表"中的种类""

@ejabberd_sql:check_error:1039 SQL query '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 limit 21) AS t ORDER BY timestamp ASC;' failed: "#42S22Unknown
column 'kind' in 'field list'"

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

I have not saved message history in database.

推荐答案

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

Upgrading your mysql to version 5.6+ should solve your problem.

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

ejabberd make use of FULLTEXT indexes with InnoDB. Thus, you need MySQL 5.6 or greater to use with ejabberd.

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

Note: If you do not store message archive in database however, you can try using older 5.5 version. You may need to adapt MySQL database schema to cope with those older MySQL versions.

MySQL 5.6.4或更高版本为建议,如果您想存储消息历史记录.

MySQL version 5.6.4 or higher is recommended if you want to store message history.

这篇关于ejabberd 16.06 + mysql 5.5.50,未保存消息历史记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆