请指教。Libzdb是否支撑OB,应用重新编译和lidzdb库文件的生成,如何操作。

【产品名称】

OceanBase

【产品版本】

OceanBase 3.2.1

【问题描述】

应用为C程序和一些PC程序,现在想使用Libzdb的方式进行多种类型数据库的连接。请问,Libzdb是否支撑OB,应用重新编译和lidzdb库文件的生成,如何操作。

Libzdb Supports MySQL, PostgreSQL, SQLite and Oracle,官网链接http://www.tildeslash.com/libzdb/

现在遇到的困难是:

1、如何生成可以支持OB数据库的Libzdb库文件。OB内核基于Oracle的,Libzdb库文件的生成需要做哪些操作。

2、如果使用已经支持Oracle的Libzdb库文件尝试连接OB库,将ldd依赖的libclntsh.so.10.1替换为libobclnt.so.20.3.11,是否可行。 目前看,不支持这种暴力操作,需要如何改进。

感谢社区,祝好

您好,先确定一下您当前使用的OceanBase的租户是MySQL租户还是Oracle租户?说明的是,开源版本当前只支持MySQL租户,Oracle兼容性目前只在商业版本上支持。

如果是MySQL租户:对于libzdb的使用,可以完全按照mysql数据库的使用方式进行设置。(链接动态库,默认使用mysql libmysqlclient 就可以)。

如果对于Oracle租户,有两种方式:

  1. 按照Oracle数据库使用配置(连接串中标识oracle),对于提到的libclntsh.so.10.1动态库依赖可以替换为libobci.so库(这个需要商业版本提供rpm包),相关信息:https://www.oceanbase.com/docs/obci/obci/V2.0.2/rcroho
  2. 按照MySQL数据库配置(连接串中标识mysql),需要使用Oceanbase libobclient库(这个需要商业版本提供rpm包),相关信息:https://www.oceanbase.com/docs/connector-c/connector-c/V2.0.0/install-the-driver




感谢。我目前使用的是商业版Oracle租户验证。libobci.so库,我这边尽快验一下。追问一下,有没有makefile的 -L -l 这种例子,少走弯路。

直接 -I /u01/obclient/include  -L /u01/obclient/lib -lobci -lobclnt    这样加进去依赖动态库的文件编译命令即可

1 个赞