ejabberd 16.06 + mysql 5.5.50, история сообщений не сохраняется

Использую 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-запрос 'ВЫБЕРИТЕ метку времени, xml, одноранговый,
вид, ник ОТ (ВЫБЕРИТЕ метку времени, xml, одноранговый, вид, ник ИЗ архива
ГДЕ имя пользователя = 'test' и bare_peer = 'misha @freldo' ORDER BY timestamp
DESC limit 21) AS t ORDER BY timestamp ASC;' не удалось: "#42S22Unknown
столбец "вид" в "списке полей""

Я не сохранил историю сообщений в базе данных.


person proton    schedule 06.08.2016    source источник
comment
имя столбца типа не существует в архивной таблице.   -  person Sunil Singh    schedule 18.08.2016


Ответы (1)


Обновление mysql до версии 5.6+ должно решить вашу проблему.

ejabberd использует индексы FULLTEXT с InnoDB. Таким образом, для использования с ejabberd вам потребуется MySQL 5.6 или выше.

Примечание. Однако, если вы не храните архив сообщений в базе данных, вы можете попробовать использовать более старую версию 5.5. Возможно, вам придется адаптировать схему базы данных MySQL, чтобы она работала со старыми версиями MySQL.

Версия MySQL 5.6.4 или выше: рекомендуется, если вы хотите сохранить историю сообщений.

person Sabbir    schedule 10.08.2016
comment
openfire ушел и забыл об этих проблемах. Спасибо за помощь. - person proton; 30.01.2017