и нашел способ ее решить
Начиная с последних версий ejabberd, вы можете использовать новую схему SQL и настроить ejabberd для ее использования, см. В
https://docs.ejabberd.im/admin/configuration/#relational-databases
Что я не могу понять, так это то, почему у Эджаберда такое поведение по умолчанию в
во-первых, в чем выгода?
Одной из возможностей является экономия места для очень больших серверов. Конечно, при наличии множества небольших серверов предпочтительно использовать одну базу данных.
А как насчет mod_mam? Как настроить его для хранения каждого сообщения
в свою базу данных?
С этим модулем то же самое, что и с другими: если вы настроили его для использования хранилища 'sql', и вы настроили ejabberd для использования определенной базы данных для хоста "example.net" и другой базы данных для "example" .com "..., тогда mod_mam будет использовать правильную базу данных SQL для хранения сообщений MAM в зависимости от пользователя, который хочет их сохранить.
Смотрите первый и второй примеры конфигов в разделе https://docs.ejabberd.im/admin/configuration/#virtual-hosting
С другой стороны, если вы используете новую схему SQL, вы определяете только одну базу данных, поэтому эти сомнения не появляются.
[также спрашивается в https://github.com/processone/ejabberd/issues/2752]