InterSystems IRIS使用python pyodbc连接 linux环境,odbc驱动安装

1、官方文档

ODBC Installation and Validation on UNIX® Systems | Using the InterSystems ODBC Driver | InterSystems IRIS for Health 2024.1

By default, a full ODBC installation is performed with a standard InterSystems installation. If you perform a custom installation (as described in the Installation Guide), you can select the “SQL client only” option to install only the client access components (ODBC client driver).

In addition, however, a stand-alone installer is provided for InterSystems ODBC. To use this installer:

  1. Create the directory where you wish to install the client, such as /usr/irisodbc/.

  2. Copy the appropriate zipped tar file into the directory that you just created.

    The ./dist/ODBC/ directory contains zipped tar files with names like the following:

    ODBC-release-code-platform.tar.gz
    
  • where release-code is a release-specific code (that varies among InterSystems versions and releases) and platform specifies the operating system that the ODBC client runs on.

  • Go to the directory you created and manually unpack the .tar file, as follows:

    # gunzip ODBC-release-code-platform.tar.gz
    # tar xvf ODBC-release-code-platform.tar
    
    
  • This creates bin and dev directories and installs a set of files.

  • Run the ODBCInstall program, which will be in the directory that you created. This program creates several sample scripts and configures irisodbc.ini under the mgr directory. For example:

    # pwd
    /usr/irisodbc
    # ./ODBCInstall
    
    

2、驱动地址

InterSystems IRIS | Driver Packages

3、ai解读

根据官方文档提供的信息,以下是在 Linux 系统上安装和配置 ODBC 驱动程序的总结:

### 执行独立安装

1. 创建安装客户端的目录,如 `/usr/irisodbc/`。
2. 将适当的压缩 tar 文件复制到您创建的目录中。
3. 手动解压 `.tar` 文件,创建 `bin` 和 `dev` 目录并安装一组文件。
4. 运行 `ODBCInstall` 程序,该程序位于您创建的目录中,用于创建示例脚本并配置 `irisodbc.ini`。
   
### ODBC 客户端文件

- `libiodbc.so`:iODBC 驱动程序管理器,支持 8 位和 Unicode ODBC API。
- `libodbc.so`:unixODBC 驱动程序管理器,用于 8 位 ODBC API。
- InterSystems ODBC 客户端驱动程序:`libirisodbc35` 支持 8 位 ODBC 3.5,`libirisodbciw35` 支持 Unicode ODBC 3.5。
 
### 设置共享库路径

- 在 UNIX 系统上使用第三方共享库时,必须通过设置 `LD_LIBRARY_PATH` 来定义 `InterSystems IRIS LibPath` 参数。这是一项安全措施,以防止非特权用户更改路径。

### 故障排除共享对象依赖关系

1. 使用适当的命令列出 InterSystems ODBC 驱动程序的动态依赖项,例如在 Solaris 上使用 `ldd` 命令。
2. 如果没有找到依赖项,则说明所有依赖项都是有效的。如果有错误,请运行命令强制共享对象加载器查找当前目录。
   
以上总结可以帮助您在 Linux 系统上安装和配置 ODBC 驱动程序。如果您需要进一步的帮助或指导,请随时告诉我!

4、实操

#1  创建路径/usr/irisodbc
root@ubuntu24:/home# cd /usr/
root@ubuntu24:/usr# mkdir irisodbc
root@ubuntu24:/usr# cd irisodbc/

#2  解压驱动 ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz
root@ubuntu24:/usr/irisodbc# ls
ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz
root@ubuntu24:/usr/irisodbc# tar -zxvf ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz
ODBCinstall
bin/
bin/libirisodbc35.so
bin/libirisodbciw35.so
bin/libirisodbcur6435.so
bin/odbcgateway.so
bin/odbcgatewayiw.so
bin/odbcgatewayur64.so
bin/irisconnect.so
bin/libiodbc.so
bin/libodbc.so
bin/libodbc.so.2
bin/libodbc.so.2.0.0
dev/
dev/odbc/
dev/odbc/redist/
dev/odbc/redist/iodbc/
dev/odbc/redist/iodbc/odbc.ini_iODBCtemplate
dev/odbc/redist/iodbc/include/
dev/odbc/redist/unixodbc/
dev/odbc/redist/unixodbc/odbcinst.ini_unixODBCtemplate
dev/odbc/redist/unixodbc/readme.txt
dev/odbc/redist/unixodbc/odbc.ini_unixODBCtemplate
dev/odbc/redist/unixodbc/include/
dev/odbc/redist/unixodbc/include/autotest.h
dev/odbc/redist/unixodbc/include/ini.h
dev/odbc/redist/unixodbc/include/log.h
dev/odbc/redist/unixodbc/include/lst.h
dev/odbc/redist/unixodbc/include/odbcinst.h
dev/odbc/redist/unixodbc/include/odbcinstext.h
dev/odbc/redist/unixodbc/include/odbctrac.h
dev/odbc/redist/unixodbc/include/odbctrace.h
dev/odbc/redist/unixodbc/include/sql.h
dev/odbc/redist/unixodbc/include/sqlext.h
dev/odbc/redist/unixodbc/include/sqlspi.h
dev/odbc/redist/unixodbc/include/sqltypes.h
dev/odbc/redist/unixodbc/include/sqlucode.h
dev/odbc/redist/unixodbc/include/sqp.h
dev/odbc/redist/unixodbc/include/unixodbc_conf.h
dev/odbc/redist/unixodbc/include/uodbc_extras.h
dev/odbc/redist/unixodbc/include/uodbc_stats.h
dev/odbc/redist/unixodbc/libodbcinst.so
dev/odbc/redist/unixodbc/libodbcinst.so.2
dev/odbc/redist/unixodbc/libodbcinst.so.2.0.0
dev/odbc/redist/unixodbc/isql
dev/odbc/redist/unixodbc/iusql
dev/odbc/redist/unixodbc/odbcinst
dev/odbc/redist/ssl/
dev/odbc/redist/ssl/readme.txt
dev/odbc/redist/ssl/odbcssl.ini.template
dev/odbc/redist/ssl/irisodbc.ini.template

# 解压后情况
root@ubuntu24:/usr/irisodbc# ls
bin  dev  ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz  ODBCinstall
root@ubuntu24:/usr/irisodbc# ll
total 4636
drwxr-xr-x  4 root root    4096 Jul 15 14:16 ./
drwxr-xr-x 15 root root    4096 Jul 15 14:15 ../
drwxrwxr-x  2 root root    4096 Apr 14  2023 bin/
drwxr-xr-x  3 root root    4096 Apr 14  2023 dev/
-rw-r--r--  1 root root 4720787 Jul 15 14:16 ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz
-rwxrwxr-x  1 root root    4501 Apr 14  2023 ODBCinstall*
root@ubuntu24:/usr/irisodbc# pwd
/usr/irisodbc
root@ubuntu24:/usr/irisodbc# ls
bin  dev  ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz  ODBCinstall
root@ubuntu24:/usr/irisodbc# cd /usr/irisodbc
root@ubuntu24:/usr/irisodbc# ll
total 4636
drwxr-xr-x  4 root root    4096 Jul 15 14:16 ./
drwxr-xr-x 15 root root    4096 Jul 15 14:15 ../
drwxrwxr-x  2 root root    4096 Apr 14  2023 bin/
drwxr-xr-x  3 root root    4096 Apr 14  2023 dev/
-rw-r--r--  1 root root 4720787 Jul 15 14:16 ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz
-rwxrwxr-x  1 root root    4501 Apr 14  2023 ODBCinstall*

# 安装驱动 可见创建了一个文件irisodbc.ini文件。
root@ubuntu24:/usr/irisodbc#  ./ODBCinstall
    Creating irisodbc.ini ...

 Done setting up ODBC and SQLGateway!


root@ubuntu24:/usr/irisodbc# ls
bin  dev  mgr  ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz  ODBCinstall

# 查找文件路径 /usr/irisodbc/mgr/irisodbc.ini
root@ubuntu24:/usr/irisodbc# find /usr/irisodbc/ -name "irisodbc.ini"
/usr/irisodbc/mgr/irisodbc.ini
root@ubuntu24:/usr/irisodbc# ll
total 4640
drwxr-xr-x  5 root root    4096 Jul 15 14:17 ./
drwxr-xr-x 15 root root    4096 Jul 15 14:15 ../
drwxrwxr-x  2 root root    4096 Apr 14  2023 bin/
drwxr-xr-x  3 root root    4096 Apr 14  2023 dev/
drwxr-xr-x  2 root root    4096 Jul 15 14:17 mgr/
-rw-r--r--  1 root root 4720787 Jul 15 14:16 ODBC-2023.1.0.229.0-lnxubuntu2204x64.tar.gz
-rwxrwxr-x  1 root root    4501 Apr 14  2023 ODBCinstall*
root@ubuntu24:/usr/irisodbc# cd mgr/
root@ubuntu24:/usr/irisodbc/mgr# ls
irisodbc.ini

# 该驱动默认的DSN连接配置,如果直接用dsn连接,直接用dsn=User,或者dsn=Userunixodbc
# 看配置的driver驱动配置:/usr/irisodbc/bin/libirisodbc35.so, 说明iris的驱动就是这个so文件,所以代码里面配置这个路径

root@ubuntu24:/usr/irisodbc/mgr# cat irisodbc.ini
[ODBC Data Sources]
User = User
Userunixodbc = Userunixodbc

[User]
Driver          = /usr/irisodbc/bin/libirisodbc35.so
Description     = IRIS ODBC driver
Host            = localhost
Namespace       = USER
UID             = _SYSTEM
Password        = SYS
Port            = 1972
Protocol        = TCP
Query Timeout   = 1
Static Cursors  = 0
Trace           = off
TraceFile       = iodbctrace.log
Authentication Method   = 0
Security Level  = 2
Service Principal Name = iris/localhost.domain.com

[Userunixodbc]
Driver          = /usr/irisodbc/bin/libirisodbcur6435.so
Description     = IRIS ODBC driver
Host            = localhost
Namespace       = USER
UID             = _SYSTEM
Password        = SYS
Port            = 1972
Protocol        = TCP
Query Timeout   = 1
Static Cursors  = 0
Trace           = off
TraceFile       = iodbctrace.log
Authentication Method   = 0
Security Level  = 2
Service Principal Name = iris/localhost.domain.com

root@ubuntu24:/usr/irisodbc/mgr# ls
irisodbc.ini

# python查询版本
root@ubuntu24:/usr/irisodbc/mgr# cd /home/code/
root@ubuntu24:/home/code# vim c1.py
root@ubuntu24:/home/code# python3 c1.py
('',)
root@ubuntu24:/home/code# python3 c1.py
('',)
root@ubuntu24:/home/code# cat c1.py
import pyodbc

driver = '/usr/irisodbc/bin/libirisodbc35.so'
server = 'ip'
database = 'test'
username = ''
password = ''
port = '1927'


cnxn = pyodbc.connect(Driver=driver, Server=server, Database=database, UID=username, PWD=password, Port=port)

cursor = cnxn.cursor()
cursor.execute("SELECT $ZVERSION")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()

cnxn.close()


# python select 1
root@ubuntu24:/home/code# cp c1.py c2.py
root@ubuntu24:/home/code# vim c2.py
root@ubuntu24:/home/code# python3 c2.py
(1,)
root@ubuntu24:/home/code# cat c2.py
import pyodbc

driver = '/usr/irisodbc/bin/libirisodbc35.so'
server = 'ip'
database = 'test'
username = ''
password = ''
port = '1927'


cnxn = pyodbc.connect(Driver=driver, Server=server, Database=database, UID=username, PWD=password, Port=port)

cursor = cnxn.cursor()
cursor.execute("SELECT 1")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()

cnxn.close()

root@ubuntu24:/home/code#
root@ubuntu24:/home/code#

5、python代码

 
import pyodbc

driver = '/usr/irisodbc/bin/libirisodbc35.so'
server = 'xxx'
database = 'xxx'
username = 'xxx'
password = 'xxx'
port = '1927'


cnxn = pyodbc.connect(Driver=driver, Server=server, Database=database, UID=username, PWD=password, Port=port)

cursor = cnxn.cursor()
cursor.execute("SELECT 1")
row = cursor.fetchone()
while row:
    print(row)
    row = cursor.fetchone()

cnxn.close()
 

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: intersystems-jdbc-3.1.0.jar是一个Java数据库连接(JDBC)驱动程序,用于连接和操作使用InterSystems数据库管理系统(DBMS)的数据库InterSystems数据库管理系统是一种可扩展的高性能数据管理和分析软件,被广泛应用于医疗、金融、物流等领域。这个JDBC驱动程序允许开发人员使用Java编程语言访问和操纵InterSystems数据库。 通过该驱动程序,开发人员可以通过Java应用程序与InterSystems数据库进行交互。它提供了一组API(应用程序编程接口),可以执行查询、更新、插入和删除等数据库操作。使用这个驱动程序,开发人员可以将Java应用程序与InterSystems数据库集成,实现数据的读取和写入。 另外,intersystems-jdbc-3.1.0.jar还支持一些高级功能,如连接池管理、事务处理和数据库元数据的检索。它提供了一些类和接口,供开发人员利用这些功能。 总之,intersystems-jdbc-3.1.0.jar是一个连接和操作InterSystems数据库的JDBC驱动程序,可以通过Java应用程序与InterSystems数据库进行交互,实现数据的读取和写入等数据库操作。 ### 回答2: intersystems-jdbc-3.1.0.jar 是一个用于连接和操作 InterSystems 数据库的 Java 数据库连接(JDBC)驱动程序。这个驱动程序可以被用于任何使用 Java 编程语言的应用程序中。 InterSystems 数据库是一种高性能、可扩展且可靠的面向对象数据管理系统,用于存储和处理大量数据。这个 JDBC 驱动程序允许 Java 应用程序与 InterSystems 数据库进行通信,提供了执行 SQL 查询、插入、更新和删除数据的功能。 通过使用 intersystems-jdbc-3.1.0.jar,开发人员可以通过标准的 JDBC API 与 InterSystems 数据库进行交互。这意味着开发人员可以使用熟悉的 JDBC 方法,如创建数据库连接、执行查询、处理结果集等。 该驱动程序还提供了一些特殊功能,以便更好地与 InterSystems 数据库进行集成。例如,它支持 InterSystems 数据库的原生数据类型,并提供了与 InterSystems SQL 不同功能的相互作用。 使用 intersystems-jdbc-3.1.0.jar,开发人员可以创建稳定且高效的 Java 应用程序,与 InterSystems 数据库进行无缝集成。这个驱动程序还支持数据安全性和事务处理,可以确保数据的一致性和可靠性。 总之,intersystems-jdbc-3.1.0.jar 是一个连接和操作 InterSystems 数据库的 Java JDBC 驱动程序,为开发人员提供了与数据库交互的能力,并且支持一些特殊的功能以提高集成和数据处理效率。 ### 回答3: intersystems-jdbc-3.1.0.jar是InterSystems公司提供的一个用于Java应用程序与InterSystems族系列数据库进行连接和交互的JDBC驱动程序。JDBC是Java数据库连接的标准接口,通过使用驱动程序,开发人员可以方便地在Java应用程序中进行数据库操作。 该驱动程序提供了一套丰富的API,可以用于在Java应用程序中执行SQL查询、插入、更新和删除操作,以及获取查询结果。用户可以通过该驱动程序连接InterSystems的各种数据库产品,如Caché、IRIS等,以实现数据的读取和写入。 intersystems-jdbc-3.1.0.jar提供了高性能和稳定可靠的数据库连接功能。它与Java应用程序之间的通信采用了高效的协议,能够有效地传输大量的数据,并提供了多种优化技术来提高数据库访问的性能。 此外,该驱动程序还支持事务处理和连接池管理,可以保证在并发访问情况下的数据一致性和安全性。开发人员可以通过设置连接参数来自定义连接行为,包括连接超时时间、字符集编码等。 总之,intersystems-jdbc-3.1.0.jar是一个功能强大、易于使用的JDBC驱动程序,为Java应用程序与InterSystems数据库之间的数据交互提供了便利和高效性能。无论是开发规模较小的个人项目还是大型企业应用程序,都可以选择使用驱动程序来实现与InterSystems数据库连接和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值