Ubuntu 22.04下MariaDB无法加载NetSuite ODBC驱动ivoa27.so求助
MariaDB CONNECT引擎无法加载NetSuite ODBC驱动(pyodbc/isql连接正常)
尝试使用MariaDB的CONNECT引擎访问NetSuite,已安装的ODBC驱动可在pyodbc和isql中正常连接,但MariaDB始终报错:
ERROR 1296 (HY000): Got error 174 'SQLDriverConnect: [unixODBC][Driver Manager]Can't open lib '/opt/netsuite/odbcclient/lib64/ivoa27.so' : file not found' from CONNECT
使用环境:
- Ubuntu 22.04.2 LTS
- MariaDB 10.11.2(已尝试降级至Ubuntu仓库中的10.6版本,问题仍存在)
- 所有组件均为64位,已多次尝试重装、重启服务
相关信息
ldd检测ivoa27.so依赖结果
/opt/netsuite/odbcclient/lib64$ ldd ivoa27.so linux-vdso.so.1 (0x00007fffb35a7000) librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fb700afc000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb700af7000) libicuuc.so.42 => /opt/netsuite/odbcclient/lib64/libicuuc.so.42 (0x00007fb700400000) libicudata.so.42 => /opt/netsuite/odbcclient/lib64/libicudata.so.42 (0x00007fb6ff300000) libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007fb700ae5000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb700ade000) libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb6ff0d6000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb6fefef000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb700abe000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb6fedc7000) libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007fb7006d2000) /lib64/ld-linux-x86-64.so.2 (0x00007fb700b0a000) libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007fb700ab4000)
系统环境变量配置(/etc/environment)
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" LD_LIBRARY_PATH="/opt/netsuite/odbcclient/lib64" ODBCINI="/opt/netsuite/odbcclient/odbc64.ini" OASDK_ODBC_HOME="/opt/netsuite/odbcclient/lib64"
ODBC配置文件
/etc/odbc.ini
[ODBC Data Sources] NetSuite=NetSuite ODBC Drivers 8.1 [NetSuite] Driver=/opt/netsuite/odbcclient/lib64/ivoa27.so Description=Connect to your NetSuite account Host=3989691.connect.api.netsuite.com Port=1708 ServerDataSource=NetSuite2.com Encrypted=1 AllowSinglePacketLogout=1 Truststore=/opt/netsuite/odbcclient/cert/ca3.cer CustomProperties=AccountID=3989691;RoleID=1015 [ODBC] Trace=0 IANAAppCodePage=4 TraceFile=odbctrace.out TraceDll=/opt/netsuite/odbcclient/lib64/ddtrc27.so InstallDir=/opt/netsuite/odbcclient
/etc/odbcinst.ini
[ODBC Drivers] NetSuite ODBC Drivers 8.1=Installed UsageCount=1 [NetSuite ODBC Drivers 8.1] APILevel=1 ConnectFunctions=YYN Driver=ivoa27.so DriverODBCVer=03.52 FileUsage=0 SQLLevel=1 UsageCount=1
已验证的连接测试
isql连接测试成功
isql 'NetSuite' 'user' 'password' +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL>
Python pyodbc连接测试成功
测试代码:
import pyodbc try: connection = pyodbc.connect('DSN=NetSuite; UID=user; PWD=password') except Exception as e: print(e) else: print("Success!") cursor = connection.cursor() cursor.execute("[SQL statement]") row = cursor.fetchone() if row: print(row)
测试结果:
python3 test_ns.py Success! [SQL results]
目前已尝试所有能找到的方法均无效,项目尚处于初期阶段,更换数据库或Linux发行版也可考虑。若有成功在Linux下通过SQL数据库连接NetSuite的经验,恳请分享。
内容的提问来源于stack exchange,提问作者Brandon
相关产品推荐
相关产品推荐

