一、为了让FreeSWITCH支持ODBC,在编译前需要安装unixODBC的开发包,并安装相应的数据库驱动,安装配置过程如下
#CentOS上安装ODBC开发包和MYSQL数据库的ODBC驱动程序
yum install -y unixODBC unixODBC-devel mysql-connector-odbc
#如上安装好后,通过/etc/odbcinst.ini可以配置数据库的驱动
vi /etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
Threading = 0
#接下来需要在/etc/odbc.ini中配置DSN(即数据源名称)
vi /etc/odbc.ini
[freeswitch]
Driver = /usr/lib64/libmyodbc5.so
SERVER = localhost
PORT = 3306
DATABASE = freeswitch
OPTION = 67108864 #这一行非常重要,FreeSWITCH会将多条SQL放到一起执行,以提高效率,如果没有该选项则会出错
#MYodbc 3.51.18及以后的版本才支持该选项
USER = root
PASSWORD = Passw0rd@0791
Threading = 0
#测试ODBC链接,如下已经成功链接
[root@localhost /]# isql -v freeswitch
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
二、MYSQL的ODBC驱动以及客户端在多线程环境中使用时可能会有问题(如内存泄漏),而FreeSWITCH是一个典型的多线程系统,因而在生产环境中使用前,需要多做测试,并精心选择一个ODBC版本与MYodbc版本的有效组合