配置 mysql 以在 ejabberd 中连接
Configure mysql to connect in ejabberd
我正在使用 ejabberd 15.09 和 mysql 14.14,我正在更改 ejabberd.yml 以连接 mysql,为此:
-旧配置:
auth_method:内部
mod_last
mod_offline
mod_roster
mod_vcard
mod_privacy
mod_private
mod_pubsub
%%打开:odbc_pool_size:20
%%打开: 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 [error] <0.3145.0>@ejabberd_odbc:log:666 p1_mysql_conn: 更改数据库失败 "ejabberd": "#42000Unknown database 'ejabberd'”
2015-10-30 16:28:52.399 [错误] <0.386.0>@ejabberd_odbc:log:666 p1_mysql_conn: post_start 错误 failed_changing_database
2015-10-30 16:28:52.399 [信息] <0.386.0>@ejabberd_odbc:connecting:270 mysql 连接失败:
** 原因:failed_changing_database
如何解决?
首先你需要编译带有 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
如果您看到 的错误,请从该模块中删除 _odbc
。
现在重新启动服务器。
我正在使用 ejabberd 15.09 和 mysql 14.14,我正在更改 ejabberd.yml 以连接 mysql,为此:
-旧配置:
auth_method:内部
mod_last mod_offline mod_roster mod_vcard mod_privacy mod_private mod_pubsub
%%打开:odbc_pool_size:20 %%打开: 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 [error] <0.3145.0>@ejabberd_odbc:log:666 p1_mysql_conn: 更改数据库失败 "ejabberd": "#42000Unknown database 'ejabberd'” 2015-10-30 16:28:52.399 [错误] <0.386.0>@ejabberd_odbc:log:666 p1_mysql_conn: post_start 错误 failed_changing_database 2015-10-30 16:28:52.399 [信息] <0.386.0>@ejabberd_odbc:connecting:270 mysql 连接失败: ** 原因:failed_changing_database
如何解决?
首先你需要编译带有 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
如果您看到 _odbc
。
现在重新启动服务器。