You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MariaDB Connect存储引擎连接Oracle失败求助

MariaDB Connect引擎连接Oracle报错:找不到libsqora.so.12.1文件

问题场景

使用MariaDB Connect存储引擎访问Oracle数据,已完成以下配置:

  • 安装Oracle客户端、unixODBC及MariaDB Connect引擎
  • 正确配置ODBC相关文件
  • 可通过isql工具正常连接Oracle并查询数据

但在MySQL客户端创建表时触发错误:

isql成功连接输出

isql -v oracle
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

MySQL客户端错误信息

ERROR 1105 (HY000): SQLDriverConnect: [unixODBC][Driver Manager]Can't open lib '/usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1' : file not found
MariaDB [test]>

已验证ODBC配置文件及Oracle客户端路径无异常,目标文件确实存在:

ls -l /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1
-rwxr-xr-x 1 root root 4421284 Jul  7  2014 /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1

解决方案

1. 确保系统库加载路径包含Oracle客户端库目录

  • 检查系统库配置文件,确认/usr/lib/oracle/12.1/client64/lib是否在/etc/ld.so.conf或/etc/ld.so.conf.d/下的文件中
  • 若未添加,创建配置文件并写入路径:
    echo "/usr/lib/oracle/12.1/client64/lib" > /etc/ld.so.conf.d/oracle.conf
    
  • 执行以下命令更新系统库缓存:
    ldconfig
    

2. 为MariaDB进程设置环境变量

修改MariaDB启动配置文件(如/etc/my.cnf或/etc/mysql/my.cnf),在[mysqld]段添加:

[mysqld]
LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib:$LD_LIBRARY_PATH

重启MariaDB服务:

systemctl restart mariadb

3. 检查文件访问权限

确认MariaDB运行用户(通常为mysql)有权限访问Oracle库文件及目录:

su - mysql -c "ls -l /usr/lib/oracle/12.1/client64/lib/libsqora.so.12.1"

若返回权限错误,调整目录权限:

chmod o+rx /usr/lib/oracle/12.1/client64/lib/

内容的提问来源于stack exchange,提问作者Prabhakar Repalle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:13:16