問題描述
我用的是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,peer,
kind, nick FROM (SELECT 時間戳, xml, peer, kind, nick FROM archive
WHERE username='test' 和bare_peer='misha@freldo' 按時間戳排序
DESC 限制 21) AS t ORDER BY 時間戳 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 索引.因此,你需要MySQL 5.6 或更高版本與 ejabberd 一起使用.
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,不保存消息歷史的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!