Ejabberd+Mysql5.5在windows64位下的配置
开始先来吐槽下,我装的时候内心一万匹草泥马在奔腾,网上资料各种不完整有木有,我还在Ubuntu下搭建了环境,开始以为很简单,之后觉得更加蛋疼有木有。而在windows下,因为我装的是mysql6.0,竟然在日志文件中报了MySQL version not supported这种蛋疼的问题,然后只能换台机子装了,如果启动的时候有问题可以去看C:\Users\Administrator\AppData\Roaming\ejabberd\logs\ejabberd.log文件。作为一个渣渣,我记下了我的安装过程,如果大家按照步骤不成功,就默默的忧伤Google吧。
1.首先下载ejabberd,windows下的最新版本为2.1.11。下载地址:http://www.process-one.net/downloads/ejabberd/2.1.11/ejabberd-2.1.11-windows-installer.exe
2.自动安装ejabberd,默认下一步就行,也可以看心情改。鄙人就把ejabberd服务器域名改为localhost,管理员用户名随意写,密码也随意,下一步直到完成。安装完成后桌面上会有两个文件,启动ejabberd和停止ejabberd,是人都知道怎么用了吧。
3.配置ejabberd/conf 目录下的ejabberd.cfg文件进行修改,
{acl, admin, {user, "admin", "localhost"}}.
后面加入{access, configure, [{allow, admin}]}.
注释{auth_method, internal}.
{auth_method, odbc}.取消这句注释
在{odbc_server, {mysql, "server", 1234, "database", "username", "password"}}.
后面加入{odbc_server, {mysql, "localhost","ejabberd", "root", "123456"}}.
Server是服务器,端口号可写可不写,之后依次为数据库名,mysql账号和密码.
之后分别在Modules模块中的mod_last,mod_offline,mod_privacy,mod_private,mod_pubsub,mod_roster,mod_vcard的后面加入_odbc例如mod_last_odbc,
mod_last_odbc: 最后连接日期和时间
mod_offline_odbc: 离线消息
mod_privacy_odbc: 用户黑名单规则
mod_private_odbc: 私有XML存储
mod_pubsub_odbc:发行-订阅
mod_roster_odbc:名册管理
mod_vcard_odbc:用户的VCARD
4.修改相同目录下的odbc.ini文件,将PWD改为123456,鄙人图方便- 0 -,密码都习惯123456。
5.打开ejabberd/logs目录下的install.log文件看到如下信息
根据此信息查找C:\Users\Administrator\AppData\Roaming\ejabberd文件对/conf里面的ejabberd.cfg和odbc.ini文件进行3,4步骤的修改,删除/database下的文件。
6.配置mysql5.5,打开mysql命令行,依次执行
mysql> CREATE DATABASE ejabberd;
mysql> GRANT ALL ON ejabberd.* TO 'ejabberd'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>use ejabberd;
mysql>source D:/Program Files (x86)/ejabberd-2.1.11/lib/ejabberd-2.1.11/priv/sql/mysql.sql;
mysql.sql文件里面有个错误,将SET table_type=InnoDB;这句话注释,但是如果在命令行下操作,不影响结果。
mysql>show tables; //显示ejabberd下的表,
7.启动ejabberd,因为把database下的文件删了所以没有数据,我们要重新注册一个放在mysql数据库里,开始->运行cmd ,输入
然后输入 ejabberdctl register admin localhost 123456 回车。
就可以用账号admin@localhost 密码123456登陆了。
在数据库中