HowTo文档

如何在 XSwitch 中连接其它数据库

XSwitch 支持多种方式连接 PostgreSQL、MySQL、OceanBase、MSSQL 和 Oracle 等数据库。XSwitch 支持 ODBC,理论上支持 ODBC 的数据库都可以连,但没有实际测试过。

连接 PostgreSQL

XSwitch 本身的数据库就是 PostgreSQL,连接字符串如下:

postgresql://xui:xui@xswitch-pg/xui

其中,连接字符串使用 URL 格式,说明如下:

  • postgresql:协议名。
  • xui:xui:用户名和密码,以冒号分隔(在实际环境中用户名密码可能不同)。
  • xswitch-pg:数据库的主机名,也可以是IP地址:端口号的形式。
  • xui:数据库名。

也可以是如下形式:

pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE'

上述连接方式需要用到mod_pgsql模块。

MySQL

XSwitch 通过mod_mariadb连接 MySQL 和 MariaDB。

连接字符串:

mysql://Server=127.0.0.1;Port=3306;Database=freeswitch;Uid=root;Pwd=root;

OceanBase

OceanBase 有与 MySQL 兼容的 API,可以直接使用mod_mariadb连接。连接字符串:

mysql://Server=127.0.0.1;Port=2881;Database=freeswitch;Uid=root;Pwd=root;

达梦数据库

达梦数据库有 C API,但是暂未在 XSwitch 内实现,可以先使用ODBC 连接

可以通过 ODBC 连接。

修改配置 odbcinst.ini

[DM8 ODBC DRIVER]
Description = DM ODBC DRIVER FOR DM8
Driver      = /opt/dmdbms/bin/libdodbc.so

修改配置 odbc.ini

[DM]
DRIVER = DM8 ODBC DRIVER
SERVER = 192.168.3.164
UID = SYSDBA
PWD = SYSDBA001
TCP_PORT = 5236

MSSQL

可以通过 ODBC 连接。

修改配置 odbc.ini

[MYSQL]
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8w.so
Description =MySQL ODBC 8.0 Unicode Driver
SERVER      = 192.168.3.164
PORT        = 3306
USER        = root
Password    = root
Database    = mysql
OPTION      = 3
charsetI    =UTF8

Oracle

可以通过 ODBC 连接。

ODBC

XSwitch 内置了 ODBC 连接,编辑/etc/odbc.ini

[freeswitch]
# X84-64
#Driver      = /usr/lib64/odbc/psqlodbca.so
Driver      = /usr/lib64/odbc/psqlodbcw.so
# ARM64
#Driver = /usr/lib/aarch64-linux-gnu/odbc/psqlodbca.so
#Driver = /usr/lib/aarch64-linux-gnu/odbc/psqlodbcw.so
Description = PostgreSQL
Servername  = xswitch-pg
Port        = 5432
Protocol    = 6.4
FetchBufferSize = 99
Username        = freeswitch
Password        = freeswitch
Database        = freeswitch
ReadOnly        = no
Debug           = 1
CommLog         = 1

[xui]
Driver      = /usr/lib64/odbc/psqlodbcw.so
Description = PostgreSQL
Servername  = xswitch-pg
Port        = 5432
Protocol    = 6.4
FetchBufferSize = 99
Username        = xui
Password        = xui
Database        = xui
ReadOnly        = no
Debug           = 1
CommLog         = 1

测试连接

isql -v xui xui xui
如何使用Portainer实现XSwitch Docker可视化管理