Использование MySQL с Ejabberd

Я пытаюсь интегрировать MySQL в Ejabberd, но постоянно сталкиваюсь с проблемой. Я работаю в среде AWS EC2, и у меня есть 1 экземпляр EC2, на котором установлены MySQL, Ejabberd и последняя версия Erlang (версия 17). Затем я точно выполнил действия, указанные в этой ссылке: https://www.ejabberd.im/Using%20ejabberd%20with%20MySQL%20native%20driver Однако, когда я просматриваю файлы erlang.log и ejabberd.log, это указывает на наличие Отсутствует проблема с модулем MySQL:

= ОТЧЕТ О СБОРЕ ==== 10-Jun-2015::06:05:28 === сбой: начальный вызов: application_master:init/4 pid: <0.41.0> зарегистрированное_имя: [] выход исключения: {bad_return,{{ejabberd_app,start,[normal,[]]}, {'EXIT',database_module_missing}}} в функции application_master:init/4 (application_master.erl, строка 133) предки: [<0.40.0>] сообщения: [] ссылки: [<0.40.0>,<0.42.0>,<0.7.0>] словарь: [] trap_exit: true статус: выполняется heap_size: 610 stack_size: 27 сокращений: 101 соседей:

Я скачал и опробовал различные модули, но все они потерпели неудачу. Например, ссылка из этого поста в блоге http://stefan-strigler.de/2009/01/14/ejabberd-mysql-drivers-for-debian-and-ubuntu/

Не работает вообще И когда я./build.sh следующий модуль: https://svn.process-one.net/ejabberd-modules/mysql/trunk/ Он ничего не создает внутри папки ebin / его.

Я сделал все, что указано в этом турориале: https://www.ejabberd.im/Using%20ejabberd%20with%20MySQL%20native%20driver за исключением самой первой части (часть драйвера). Можете ли вы предложить мне, как решить этот или любой другой (легкий) способ добиться этого? Спасибо.

2 ответа

Казалось бы, виртуальная машина Erlang не может ни найти, ни получить доступ к одному из mysql.beam, mysql_auth.beam, mysql_conn.beam или mysql_recv.beam. Убедитесь, что все они в соответствующем ebin каталог и читаем как пользователь ejabberd работает как.

Пост, на который вы ссылаетесь, устарел.

Чтобы использовать ejabberd с собственным драйвером Erlang MySQL, теперь это очень просто и довольно просто. Требуются только два шага:

  1. Убедитесь, что у вас есть ejabberd с поддержкой MySQL. Два способа получить это:

    • Загрузите бинарный установщик или пакет RPM / DEB. Необходимый компонент MySQL включен. Установщик и пакеты можно загрузить с официальной страницы загрузки ejabberd.
    • Создайте ejabberd из исходного кода и убедитесь, что он настроен с--enable-mysqlнастроить вариант. Вы можете обратиться к документации по ejabberd для получения подробной информации о том, как собрать ejabberd: Установка ejabberd из исходного кода.
  2. Создать схему базы данных MySQL. Последняя версия схемы для MySQL доступна здесь: https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.sql

  3. Вам необходимо настроить ejabberd для использования MySQL. Сначала необходимо настроить базу данных на корневом уровне файла конфигурации, как описано здесь: база данных ejabberd и конфигурация LDAP. После настройки базы данных вы можете выбрать модуль за модулем, какой бэкэнд вы хотите использовать. Для пользовательской базы вам необходимо определить odbcauth_method, Для других модулей вам нужно передать опцию db_typeсо значениемodbc, Вот пример документации для списка контактовmod_roster,

Другие вопросы по тегам