Odbc

IBM iSeries AS400 版本 V7R1 的 ODBC 驅動程序

  • August 20, 2019

我正在嘗試在 Linux Red Hat(英特爾 64 位架構)上使用 pyodbc(用於 ODBC 的 Python 介面)連接到 IBM iSeries。

以下是我所做的:

  1. 安裝gcc-c++(編譯pyodbc需要)、unixODBC、unixODBC-devel
  2. 安裝 iSeriesAccess-6.1.0-1.0.x86_64.rpm:
sudo rpm -ivh http://ftpmirror.your.org/pub/misc/ftp.software.ibm.com/as400/iSeriesAccess-6.1.0-1.0.x86_64.rpm --nodeps
  1. 將驅動程序附加到 unixODBC
odbcinst -i -d -f /opt/ibm/iSeriesAccess/unixodbcregistration64
  1. 由於我對庫有一些問題,我符號連結它們:
sudo ln -s /opt/ibm/iSeriesAccess/lib64/libcwb* /usr/lib/
  1. 我配置了 ODBC 數據源來訪問 AS400 的數據庫:/etc/odbc.ini:
[AS400]
Description = Database iSeries
Driver = iSeries Access ODBC Driver
System = XXX.XXX.XXX.XXX
Port = 8471
UserID = XXXXXX
Password = XXXXXX
Naming = 1
Database = XXXXXXXXX
ConnectionType = 0
CommitMode = 2
BlockFetch = 1
BlockSizeKB = 512
  1. 我測試了連接:
> isql -v AS400

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>

我能夠連接,但是在執行任何 SQL 查詢時,我得到Segmentation fault (core dumped).

通過檢查 /var/log/messages 我看到了這個:

isql[5767]: segfault at 7f6fdb30020e ip 00007f6ed372ff71 sp 00007ffcce17d5f0 error 4 in libcwbcore.so[7f6ed369e000+11c000]

我想重新安裝一個不同的驅動程序(例如 iSeriesAccess-7.1.0-1.0x86_64.rpm),但我找不到它。

該工具不再稱為 iSeries Access,而是 IBM i Access Client Solutions。看這裡,然後向下滾動到 Linux 應用程序包的頁面底部。但是,頁面上的最後一行說可選包只能通過 ESS 獲得。因此,您或您的管理員需要為您獲取該資訊。

引用自:https://serverfault.com/questions/979606