0

我已经设置了 apache ignite,将数据从 Java 应用程序加载到 ignite 中,并且可以使用 rest apis 进行查询。我需要从 PHP 查询它所以

我正在尝试使用 pdo_odbc 从 PHP 连接到 Apache Ignite。我有,

i) 已安装 ODBC 驱动程序管理器 - http://www.unixodbc.org/

ii) 内置 ODBC 驱动程序 http://apacheignite.gridgain.org/docs/odbc-driver#section-building-on-linux

iii) 安装了 Ignite ODBC 驱动程序http://apacheignite.gridgain.org/docs/odbc-driver#section-installing-on-linux ,

iv) 配置 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-binary-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 => 未找到

4

1 回答 1

0

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

于 2016-12-16T12:16:52.490 回答