Apache Ignite - [PDOException] SQLSTATE [IM002] SQLConnect:0 [unixODBC] [驱动程序管理器]未找到数据源名称,并且没有指定默认驱动程序

问题描述:

我已经设置了apache ignite,将数据加载到Java应用程序中点燃,使用休息apis。我需要从PHP中查询,所以Apache Ignite - [PDOException] SQLSTATE [IM002] SQLConnect:0 [unixODBC] [驱动程序管理器]未找到数据源名称,并且没有指定默认驱动程序

我想从PHP使用pdo_odbc连接到Apache Ignite。我有,

ⅰ)安装ODBC驱动程序管理器 - 内置http://apacheignite.gridgain.org/docs/odbc-driver#section-building-on-linux

ⅲ)安装的Ignite ODBC驱动http://apacheignite.gridgain.org/docs/odbc-driver#section-installing-on-linuxhttp://www.unixodbc.org/

ⅱ)ODBC驱动程序,使用

ⅳ)配置DSN,http://apacheignite.gridgain.org/v1.8/docs/connecting-string#configuring-dsn

odbcinst -j

unixODBC 2.3.4 
DRIVERS............: /etc/odbcinst.ini 
SYSTEM DATA SOURCES: /etc/odbc.ini 
FILE DATA SOURCES..: /etc/ODBCDataSources 
USER DATA SOURCES..: /home/me/.odbc.ini 
SQLULEN Size.......: 8 
SQLLEN Size........: 8 
SQLSETPOSIROW Size.: 8 

猫/etc/odbcinst.ini

[Apache Ignite] 
Description=Apache Ignite 
Driver=/usr/local/lib/libignite-odbc.so 
DriverODBCVer=03.00 
FileUsage=0 
UsageCount=1 

猫/etc/odbc.ini

[Apache Ignite] 
Description=Apache Ignite 
Driver=/usr/local/lib/libignite-odbc.so 
DriverODBCVer=03.00 
FileUsage=0 
UsageCount=1 

猫/home/me/.odbc.ini

[Apache Ignite] 
Description=Apache Ignite 
Driver=/usr/local/lib/libignite-odbc.so 
DriverODBCVer=03.00 
FileUsage=0 
UsageCount=1 

V)安装pdo_odbc,

sudo apt install php5.6-odbc 

它显示在phpinfo。

VI)启用OdbcConfiguration使用

Ignite ignite = Ignition.start("examples/config/example-ignite.xml"); 
IgniteConfiguration iCfg = ignite.configuration(); 
OdbcConfiguration odbcCfg = new OdbcConfiguration(); 
iCfg.setOdbcConfiguration(odbcCfg); 

七)

$ignite = $dbh = new \PDO('odbc:Apache Ignite'); 
$ignite->prepare('select * from Person'); 

我仍然得到这个例外。

[PDOException]                            
    SQLSTATE[01000] SQLConnect: 0 [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libignite-odbc.so' : file not found 

更新:LD_LIBRARY_PATH已经在/ usr/local/lib目录 LS的/ usr/local/lib目录| grep的libignite-二进制1.8.0.16166.so.0

libignite-binary-1.8.0.16166.so.0 
libignite-binary-1.8.0.16166.so.0.0.0 

LDD /usr/local/lib/libignite-odbc.so

Linux的vdso.so.1 =>(0x00007ffe68521000) libignite -binary-1.8.0.16166.so.0 =>找不到

+0

如果ldd表示找不到'libignite-binary-1.8.0.16166.so.0',那么'LD_LIBRARY_PATH'中没有包含'libignite-binary-1.8.0.16166.so.0'的目录。 – isapego

您是否尝试过运行ldd /usr/local/lib/libignite-odbc.so?似乎有一些未解决的依赖关系。也许你需要将它们添加到LD_LIBRARY_PATH

+0

感谢更新的问题 – vishal