配置mysql以在ejabberd中连接

时间:2015-10-30 10:31:03

标签: mysql ejabberd

我正在使用ejabberd 15.09和mysql 14.14,我正在更改ejabberd.yml以连接mysql,为此:

- 旧配置

auth_method:internal

mod_last mod_offline mod_roster mod_vcard mod_privacy mod_private mod_pubsub

%% open:odbc_pool_size:20 %% open:odbc_keepalive_interval:30

- 新配置

auth_method:odbc

odbc_type:mysql odbc_server:" localhost" odbc_database:" ejabberd" odbc_username:" root" odbc_password:" xxx"

mod_last_odbc mod_offline_odbc mod_roster_odbc mod_vcard_odbc mod_privacy_odbc mod_private_odbc mod_pubsub_odbc

odbc_pool_size:20 odbc_keepalive_interval:30

然后我使用mysql创建数据库" ejabberd": MySQL的>创建数据库ejabberd;

重启服务器时,会产生以下错误: 2015-10-30 16:28:52.399 [错误]< 0.3145.0> @ejabberd_odbc:log:666 p1_mysql_conn:无法更改为数据库" ejabberd" :"#42000未知数据库' ejabberd'" 2015-10-30 16:28:52.399 [错误]< 0.386.0> @ejabberd_odbc:日志:666 p1_mysql_conn:post_start错误failed_changing_database 2015-10-30 16:28:52.399 [info]< 0.386.0> @ejabberd_odbc:连接:270 mysql连接失败: **原因:failed_changing_database

如何解决问题?

1 个答案:

答案 0 :(得分:0)

首先需要使用MySQL支持编译ejabberd:

./configure --enable-odbc --enable-mysql

如果要连接mysql,则需要使用提供的脚本

创建表
mysql < /path/to/mysql.sql

评论您的internal身份验证方法(auth_method)并添加ODBC身份验证方法。

# auth_method: internal ## Commented this line
auth_method: ODBC ## Added this line

现在你需要连接到MySQL

odbc_type: mysql
odbc_server: "localhost"
odbc_port: 3306 # the default
odbc_database: "mydb"
odbc_username: "user1"
odbc_password: "userpassword"
odbc_pool_size: 5

您可以阅读选项here的说明。

_odbc添加到您希望使用mysql数据库的模块

mod_offline_odbc instead of mod_offline

如果您看到3rd comment的错误,请从该模块中删除_odbc

现在重启服务器。