freeswitch在ubuntu/centos/debian中使用odbc连接mysql

Song3179 次浏览0个评论2018年10月26日

一、配置需求

  • 1、freeswitch
  • 2、mysql
  • 3、ubuntu/debian/centeos

二、安装odbc驱动

1、debian/Ubuntu 14配置安装odbc驱动

直接使用apt-get安装即可:

apt-get install unixodbc-dev
apt-get install libmyodbc

2、Centos6.x系统配置安装odbc驱动

yum install mysql-connector-odbc.x86_64 unixODBC-devel.x86_64

3、Ubuntu 16及以上

a、安装依赖包:
apt-get install unixodbc-dev
b、下载odbc驱动

下载mysqlubuntu odbc驱动,下载地址:mysql odbc,比如我的Ubuntu 16.04.2 LTS服务器操作如下:

wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.13-linux-ubuntu16.04-x86-64bit.tar.gz
# 解压安装包
tar  -zxvf mysql-connector-odbc-8.0.13-linux-ubuntu16.04-x86-64bit.tar.gz
# 拷贝lib里面的.so到/usr/lib/x86_64-linux-gnu/odbc/ 
在解压的bin里面
cp -r mysql-connector-odbc-8.0.13-linux-ubuntu16.04-x86-64bit/lib/* /usr/lib/x86_64-linux-gnu/odbc/
c、配置odbc驱动

进入/root/lusong/mysql-connector-odbc-8.0.13-linux-ubuntu16.04-x86-64bit/bin然后执行安装:

./myodbc-installer -d -a -n "MySQL ODBC 8.0 Unicode Driver"  -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so;SETUP=/usr/lib/x86_64-linux-gnu/odbc/myodbc8S.so"
./myodbc-installer -d -a -n "MySQL ODBC 8.0 ANSI Driver"  -t "DRIVER=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so;SETUP=/usr/lib/x86_64-linux-gnu/odbc/lmyodbc8S.so"

或者新建一个/etc/odbcinst.ini文件并且添加以下内容:

[MySQL ODBC 8.0 Unicode Driver]
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so
SETUP=/usr/lib/x86_64-linux-gnu/odbc/myodbc8S.so
UsageCount=1

[MySQL ODBC 8.0 ANSI Driver]
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so
SETUP=/usr/lib/x86_64-linux-gnu/odbc/lmyodbc8S.so
UsageCount=1

他们两个的作用是一样的。

三、配置ODBC与mysql对接

新增vim /etc/odbc.ini加入如下配置,让他与数据库连接:

[freeswitch]
Driver          = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so
SERVER          = 127.0.0.1
DATABASE        = freeswitch
USER            = root
PASSWORD        = 123456
OPTION          = 67108864
PORT            = 3306
Threading       = 0

注意
你下载的哪个版本的odbc驱动,libmyodbc8w就把8改成其他版本
此处可以连接远程服务区,不一定是本地服务器。

测试连接mysql服务器:

isql -v freeswitch

四、指定数据库连接

修改conf/autoload_configs/switch.conf.xml中的core-db-dsn

<param name="core-db-dsn" value="odbc://freeswitch:username:password"/>

# 如果上面设置了账号密码,可以直接使用如下方法
<param name="core-db-dsn" value="odbc://freeswitch::" />

另外,我们也可以在mod_sofia的配置文件(如conf/sip_profiles/internal.xml)或mod_fifo的配置文件fifo.conf.xml中使用 如下参数开启对ODBC的支持:

<param name="odbc-dsn" value="odbc://freeswitch:username:password"/>

说明:

  • odbc:连接方式
  • freeswitch:数据库名
  • username:用户名
  • password:密码

五、配置其他模块连接

1、修改conf/autoload_configs中的db.conf.xml文件 

<param name="odbc-dsn" value="freeswitch:root:password"/> 

2、修改conf/autoload_configs中的switch.conf.xml 

修改字段

<param name="core-db-dsn" value="freeswitch:root:password" />

添加

<param name="odbc-dsn" value="freeswitch:root:password"/>

3、修改conf/autoload_configs中的voicemail.conf.xml

<param name="odbc-dsn" value="freeswitch:root:password"/> 

4、修改conf/autoload_configs中的callcenter.conf.xml

<param name="odbc-dsn" value="freeswitch:root:password"/>

5、修改conf/sip_profiles中的internal.xmlexternal.xmlinternal-ipv6.xml

<param name="odbc-dsn" value="freeswitch:root:password"/>

其他模块请搜索odbc-dsn

六、常见问题

1、Failure! ODBC NOT AVAILABLE! Can't connect to DSN freeswitch

  • 1、首先检查unixODBC与unixODBC-devel安装是否有问题,在看下isql -v freeswitch是否能连接上

  • 2、如果安装都没问题,那就可能是安装时没有./configure --enable-core-odbc-support,在进入freeswitch源码目录下,执行重新make&& make install就可以了

2、运行freeswitch后,循环报Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

修改代码中的create_channels_sql中的sql语句,switch_core_sqldb.c,把几个长字段类型改成TEXT。注意修改后需要重新编译一下freeswitch

提交评论

请登录后评论

用户评论

    当前暂无评价,快来发表您的观点吧...

更多相关好文

    当前暂无更多相关好文推荐...