分享

ejabberd + mysql 搭建配置

 TIDEDOC 2013-08-19
下载ejabberd

执行下面命令安装ejabberd
gunzip ejabberd-2.1.2-linux-x86_64-installer.bin.gz
./ejabberd-2.1.2-linux-x86_64-installer.bin
按提示安装ejabberd
配置ejabberd支持mysql
填加mysql用户以及数据库
mysql:>create database ejabberd
mysql:>grant all privileges on ejabberd.* to ejabberd@’127.0.0.1′ IDENTIFIED BY ’ejabberd’;
mysql:>grant all privileges on ejabberd.* to ejabberd@’localhost’ IDENTIFIED BY ’ejabberd’;
建立ejabberd数据库中的表
mysql:>source /usr/local/ejabberd/lib/ejabberd-2.1.2/priv/odbc/mysql.sql;
更改/usr/local/ejabberd/conf/ejabberd.cfg文件
注释掉下面这行
{auth_method, internal}.
加入下面的两行
{auth_method, odbc}.

%%{odbc_server,{mysql, "主机",端口,"数据库","用户名","密码"}}.
{odbc_server, {mysql, ”localhost”, ”ejabberd”, ”ejabberd”, ”ejabberd”}}.
把下面的注释去掉
%%连接池容量
{odbc_pool_size, 20}.

%%连接保持时间?
{odbc_keepalive_interval,30}.
如果不加入以上两行的话,MySQL中的连接池就会在sleep 时间超过wait_timeout的限制后被断开,导致ejabberd不能认证用户。查看
ejabberd.log会出现以下错误:
=ERROR REPORT==== 2010-03-02 10:44:09 ===

E(<0.426.0>:ejabberd_odbc:491) : mysql_conn: Received unknown signal, exiting : {mysql_recv,

<0.427.0>,

closed,

normal}

在ejabberd的配置文件中的module配置,更改模块名称使它也将数据放入MySQL数据库。
{mod_last_odbc, []},
{mod_offline_odbc, []},
{mod_roster_odbc, []},
{mod_vcard_odbc, []},
即在模块名称后面加上_odbc后缀(不是所有的模块数据都能放入数据库,注意看官方文档那些模块支持)

目前这3个也支持

{mod_privacy, []},

{mod_private, []},

{mod_pubsub,。。。。。。},

更改模块定义
MySQL:
- Change mod_last to mod_last_odbc to store the last seen date in MySQL.
- Change mod_offline to mod_offline_odbc to store offline messages in MySQL.
- Change mod_roster to mod_roster_odbc to store contact lists in MySQL.
- Change mod_vcard to mod_vcard_odbc to store user description in MySQL.

启动ejabberd
cd /usr/local/ejabberd/bin
./ejabberdctl start

进入WebAdmin后台的 地址为:

用户名:admin 密码:password

以上测试成功

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多