Назад | Перейти на главную страницу

Использование 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-июн-2015 :: 06: 05: 28 === crasher: начальный вызов: 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>] messages: [] ссылки: [<0.40.0>, <0.42.0>, <0.7.0>] словарь: [] trap_exit: true status: running 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 кроме самой первой части (драйверная часть). Не могли бы вы подсказать мне, как решить эту проблему или какой-либо альтернативный (простой) способ добиться этого? Спасибо.

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

Теперь использовать 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. После настройки базы данных вы можете выбрать модуль за модулем, какой бэкэнд вы хотите использовать. Для пользовательской базы вам необходимо определить odbc auth_method. Для других модулей необходимо передать опцию db_type со значением odbc. Вот пример документации для списка контактов mod_roster.

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