实际项目中可能会需要用mysql替代原有的sqlite,具体方法如下(debain 8系统):
在数据库服务器上安装mysql,并且允许远程连接,创建一个名为freeswitch的数据库。
在允许远程连接的时候,如果连接不上,请检查权限和/etc/mysql/my.cnf中的bind-address是否打开,如果打开着,请注释掉这一行。
在freeswitch服务器上面安装odbc
apt-get install unixodbc-dev
apt-get install libmyodbc
修改下面两个文件,添加如下内容:
sudo vi /etc/odbc.ini
[freeswitch]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
SERVER = xxx.xxx.xxx.xxx mysql服务器IP地址
PORT = 3306
DATABASE = freeswitch
OPTION = 67108864
USER = root
PASSWORD = 123456
sudo vi /etc/odbcinst.ini
[MySQL]
Description = MySQL driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
UsageCount = 1
FileUsage = 1
Threading = 0
测试连接是否正常
isql freeswitch -v
如下显示为正常连接:
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
下面就是下载freeswitch源码并编译安装,具体参照上一篇freeswitch的编译安装,区别是在./configure步骤时,
加上允许odbc的参数:./configure --enable-core-odbc-support 其他相同。
安装完成之后,进入freeswitch目录,修改需要使用mysql的模块的配置文件
进入/usr/local/freeswitch
搜索 dsn 来查找哪些配置文件中有这个项目
grep -ir dsn
会找到类似下面这个的配置文件,之后将配置文件中的dsn项目修改成我们上面添加的mysql的dsn就可以了。
switch.conf.xml: <param name="core-db-dsn"value="dsn:user:pass"/>
switch.conf.xml: <param name="core-db-dsn" value="freeswitch:root:123456" />