我使用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'“
我没有在数据库中保存邮件历史记录。
答案 0 :(得分:0)
将mysql升级到5.6+版可以解决您的问题。
ejabberd在InnoDB中使用FULLTEXT索引。因此,你需要 MySQL 5.6或更高版本与ejabberd一起使用。
注意:如果您不在数据库中存储邮件存档,则可以 尝试使用旧的5.5版本。您可能需要调整MySQL数据库 架构以应对那些较旧的MySQL版本。
如果要存储邮件历史记录,则MySQL版本5.6.4或更高版本为recommended。