如何在 Python 中连接到 DB2 数据库?
How do I make a connection to a DB2 database in Python?
我正在尝试使用 Python 连接到使用 DB2 的 AS/400 系统。我实际拥有的这段代码是:
from ibm_db import connect
connection = connect('DATABASE=<DB>;'
'HOSTNAME=<HOST_IP>;'
'PORT=<PORT>;'
'PROTOCOL=TCPIP;'
'UID=<USER>;'
'PWD=<PASSOWRD>;', '', '')
所有这些都是我的信息。
但是当我尝试建立连接时,我从 Python 终端收到此错误:
Exception: [IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "<IP>". Communication func SQLCODE=-30081the error: "connect". Protocol specific error code(s): "10061", "*", "*". SQLSTATE=08001
我已经在 AS/400 中检查端口正在使用“netstat”命令侦听。
IBM 文档对此没有帮助,有人知道任何可能的解决方案吗?
连接到 db2 数据库的最有效方法是通过 ODBC。
如果您在 windows 下工作,首先您应该在“用户 DSN”选项卡下创建一个新的 odbc 连接(即 "AS400"
)
然后,您可以连接到它:
import pyodbc
conn_db2 = pyodbc.connect('DSN=AS400; UID=my_id; PWD=my_password')
要获取 table,您可以使用:
import pandas as pd
query = f'''SELECT * FROM mytable'''
table = pd.read_sql(query, conn_db2)
conn_sql.close()
我正在尝试使用 Python 连接到使用 DB2 的 AS/400 系统。我实际拥有的这段代码是:
from ibm_db import connect
connection = connect('DATABASE=<DB>;'
'HOSTNAME=<HOST_IP>;'
'PORT=<PORT>;'
'PROTOCOL=TCPIP;'
'UID=<USER>;'
'PWD=<PASSOWRD>;', '', '')
所有这些都是我的信息。
但是当我尝试建立连接时,我从 Python 终端收到此错误:
Exception: [IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS". Location where the error was detected: "<IP>". Communication func SQLCODE=-30081the error: "connect". Protocol specific error code(s): "10061", "*", "*". SQLSTATE=08001
我已经在 AS/400 中检查端口正在使用“netstat”命令侦听。
IBM 文档对此没有帮助,有人知道任何可能的解决方案吗?
连接到 db2 数据库的最有效方法是通过 ODBC。
如果您在 windows 下工作,首先您应该在“用户 DSN”选项卡下创建一个新的 odbc 连接(即 "AS400"
)
然后,您可以连接到它:
import pyodbc
conn_db2 = pyodbc.connect('DSN=AS400; UID=my_id; PWD=my_password')
要获取 table,您可以使用:
import pandas as pd
query = f'''SELECT * FROM mytable'''
table = pd.read_sql(query, conn_db2)
conn_sql.close()