Я пытаюсь интегрировать 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:
=CRASH СООБЩАЮТ о ==== 10 июня 2015:: 6:05:28 === незваный гость: начальный вызов: pid application_master:init/4: <0.41.0> registered_name: [] выход исключения: {bad_return, {{ ejabberd_app, запускаются, [нормальный, []]}, {'ВЫХОД', 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: истинное состояние: выполнение 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/папка его.
Я сделал все, что указано в этом turorial: https://www.ejabberd.im/Using%20ejabberd%20with%20MySQL%20native%20driver за исключением самой первой части (часть драйвера). Можно ли предложить меня, как решить это или какой-либо альтернативный (легкий) способ достигнуть этого?Спасибо.
Может показаться, что виртуальная машина Erlang не может найти или получить доступ к одному из mysql.beam, mysql_auth.beam, mysql_conn.beam или mysql_recv.beam. Убедитесь, что все они находятся в соответствующем каталоге ebin
и доступны для чтения, поскольку пользователь ejabberd работает от имени.
Сообщение, на которое вы ссылаетесь, устарело.
Чтобы использовать ejabberd с собственным драйвером Erlang MySQL, теперь это очень просто и довольно просто. Требуется всего два шага:
Убедитесь, что у вас есть ejabberd с включенной поддержкой MySQL. Два способа получить это:
- enable-mysql
. Вы можете обратиться к документации ejabberd для получения подробной информации о том, как собрать ejabberd: Установка ejabberd из исходного кода . Создайте схему базы данных MySQL. Последняя версия схемы для MySQL доступна здесь: https://raw.githubusercontent.com/processone/ejabberd/master/sql/mysql.sql
Вам необходимо настроить ejabberd для использования MySQL. Сначала вам нужно настроить базу данных на корневом уровне файла конфигурации, как описано здесь: База данных ejabberd и конфигурация LDAP . После настройки базы данных вы можете выбрать модуль за модулем, какой бэкэнд вы хотите использовать. Для пользовательской базы необходимо определить odbc
auth_method
. Для других модулей необходимо передать параметр db_type
со значением odbc
. Вот пример документации для списка контактов mod_roster
.