Я пытаюсь интегрировать 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 очень просто. Требуется всего два шага:
Убедитесь, что у вас есть 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
.
Казалось бы, виртуальная машина Erlang не может найти или получить доступ к одному из mysql.beam, mysql_auth.beam, mysql_conn.beam или mysql_recv.beam. Убедитесь, что все они находятся в соответствующих ebin
каталог и доступен для чтения, поскольку пользователь ejabberd работает от имени.