【YashanDB数据库】PHP无法通过ODBC连接到数据库
【问题分类】驱动使用
【关键字】ODBC、驱动使用、PHP
【问题描述】应用使用php-fpm+nginx架构,通过php的ODBC拓展连接YashanDB时出现报错:
[unixODBC][Driver Manager]Can't open lib '/home/yashandb_odbc/libyas_odbc.so': file not found
但是在应用所在的主机上使用isql连接YashanDB数据库正常,ldd检查/home/yashandb_odbc/libyas_odbc.so和libyascli.so.0均正常。
【问题原因分析】php-fpm和nginx均通过systemctl的方法启动,该启动方式不会读取配置到机器中的环境变量,导致php-fpm的workers进程无法正确获取到ODBC的驱动文件
【解决/规避方法】
方法一:
在/lib/systemd/system/php-fpm.service的[Service]部分添加环境文件
EnvironmentFile=/etc/sysconfig/php-fpm
在/etc/sysconfig/php-fpm中添加以下内容:
LD_LIBRARY_PATH=/usr/lib:/usr/lib64:/home/yashandb_odbc:/home/yashandb_client/lib
export LD_LIBRARY_PATH
其中/home/yashandb_odbc和/home/yashandb_client/lib是odbc驱动和C驱动lib的文件夹
添加完成后需要重新启动php-fpm服务:
systemctl daemon-reload
systemctl restart php-fpm
方法二:
在/lib/systemd/system/php-fpm.service的[Service]部分添加环境变量
Environment=LD_LIBRARY_PATH=/usr/lib:/usr/lib64:<实际C驱动文件夹的lib>
添加完成后需要重新启动php-fpm服务:
systemctl daemon-reload
systemctl restart php-fpm
【影响范围】所有版本
【修复版本】-
【YashanDB数据库】PHP无法通过ODBC连接到数据库的更多相关文章
- [原]php远程odbc连接sqlsvr数据库,自定义端口,命名实例的连接方式
远程odbc连接sqlsvr数据库,自定义端口,命名实例的连接方式,默认如果不修改的话sqlsvr的端口号是1433,默认实例名就是机器名,,如果既用了命名实例,又改了默认端口,改怎么连接数据库呢? ...
- 解决ODBC连接Oracle数据库报Unable to connect SQLState=08004问题
今天用ODBC连接Oracle数据库时,报了这么一个错“Unable to connect SQLState=08004 Oracle ODBC Ora-12154”,上网查了好久都说PowerDes ...
- Excel VBA 连接各种数据库(二) VBA连接Oracle数据库
本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracle10g官方免账号下载地址 系统环境: Windows 7 64bit Excel 2 ...
- [转]ODBC连接ORACLE数据库的设置
本文转自:http://www.cppblog.com/edog/articles/1420.html 首先安装Oracle,以Oracle 817为例,作为ODBC开发者的客户端,才能使用Oracl ...
- Asp.Net通过ODBC连接Oracle数据库
本来有个项目是通过安装Oracle client然后让asp.net引用System.Data.OracleClient来访问Oracle数据库的,但是不知道为什么老是报:ORA-12170:连接超时 ...
- Linux安装ODBC连接SQLServer数据库
操作系统:Centos7.2 1.下载ODBC安装包 unixODBC-2.3.9.tar.gz freetds-1.3.9.tar.gz 下载这两个压缩包的地址:ftp://ftp.freetds. ...
- Excel VBA 连接各种数据库(一) VBA连接MySQL数据库
本文参考[东围居士]的cnblog博文 Excel.VBA与MySQL交互 在自己机器上调试成功,把调试中遇到的问题一并写出了. 本文主要涉及: VBA中的MySQL环境配置 VBA连接MySQL ...
- 【redis数据库学习】用JAVA连接redis数据库各种报错
最近项目中,需要用到redis数据库,然后使用Jedis让JAVA连接redis. 首先,安装redis数据库,参考的是:http://www.runoob.com/redis/redis-insta ...
- 测试odbc连接sqlsever数据库是否成功的代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 #include<sql.h ...
- cognos10.2.2使用ODBC连接oracle92数据库(BMT-IMP-0016)
对于Cognos Server 64位Windows系统,注意!请下载32位程序.即: 因为Cognos只认32位ODBC程序.这里千万要注意.对于64位的Windows系统的ODBC有两个程序, ...
随机推荐
- 韦东山freeRTOS系列教程之【第九章】任务通知(Task Notifications)
目录 系列教程总目录 概述 9.1 任务通知的特性 9.1.1 优势及限制 9.1.2 通知状态和通知值 9.2 任务通知的使用 9.2.1 两类函数 9.2.2 xTaskNotifyGive/ul ...
- SpringBoot+Mybatis整合出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的解决
在搭建自己的后台管理,遇到一个比较小问题,顺便记录了一下. 启动SpringBoot后台时,前端访问后台执行Mybatis时,出现了这样的报错: org.apache.ibatis.binding.B ...
- Java-EL表达式替换和简化jsp页面中java代码的编写
概念:Expression Language 表达式语言 作用:替换和简化jsp页面中java代码的编写 语法:$ 注意: jsp默认支持el表达式,如果要忽略el表达式 设置jsp中page指令中: ...
- Ubuntu下的LabVIEW开发
1 虚拟机的安装 我用的是Virtua Box 的虚拟机,当然也有其他的类似软件:下载虚拟机的网址: https://www.virtualbox.org/wiki/Downloads 自行去下载合适 ...
- oeasy 教您玩转 linux 010207 黑客帝国 matrix
我们来回顾一下 上一部分我们都讲了什么? 蒸汽机车sl 变身小机车-l 变身飞天机车-F 让我们再开一次车 sl 上次还想看看黑客帝国来着?! 黑客帝国Matrix apt search matrix ...
- 题解:P10722 [GESP202406 六级] 二叉树
题意 一颗 \(n\) 节点的二叉树,每个节点非黑即白,给你 \(Q\) 次操作,每次给你一个 \(u\),把 \(u\) 的子树内所有节点颜色反转,问最终每个节点的颜色. 分析 看到数据范围,首先把 ...
- JMeter 配置元件之按条件读取CSV Data Set Config
实践环境 win10 JMeter 5.4.1 需求描述 需求是这样的,需要压测某个接口(取消分配接口),请求这个接口之前,需要先登录系统(物流WMS系统),并在登录后,选择并进入需要操作的仓库,然后 ...
- CCF 任务调度
样例的示意图 查了一圈,然后很烦,不想学习方法,好卡.查了一些题解,发现都是10分,30分先搁置的博客,最后翻到 堪称官方标称的思路 (CCF题目pat题目各大poj/hdoj好戏那个都没有标程,这里 ...
- iOS开发基础142-广告归因
IDFA IDFA是苹果为iOS设备提供的一个唯一标识符,专门用于广告跟踪和相关的营销用途.与之对应的,在Android平台的是谷歌广告ID(Google Advertising ID). IDFA的 ...
- Jmeter的安装(Windows)
1.选择和本机JDK兼容的jmeter版本下载 Jmeter历史版本下载地址:https://archive.apache.org/dist/jmeter/binaries/ 此处我的jmeter5. ...