python3连接db2数据库详解(附百度云)

安装**db2**

下载exe,安装教程参考 https://blog.csdn.net/Traditional_/article/details/108773056

下载link:https://download.csdn.net/download/sunkanghui/16131502

使用**dbeaver连接数据库:**

配置数据库

添加驱动

 

test connection看是否成功。

 

DBeaver连接

下载link:https://download.csdn.net/download/sunkanghui/16131502

新建表:

Schemas-->MYSCHEMA-->Tables--->新建tables

查看**sql:*, 点击NEWTABLE

新增**/修改数据:**

 

 

python3连接

在线安装:

pip install ibm_db, 如果python找不到驱动会超级慢,所以推荐离线安装。

 

离线安装:

下载ntx64_odbc_cli_3.0.3.zip,ibm_db-3.0.3.tar.gz

百度云地址:https://download.csdn.net/download/sunkanghui/16131502

1) 将ibm_db-3.0.3.tar.gz 放到python库下,查看python库路径:

            python -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())"

2)  解压ibm_db包,可以用bash解压

           tar -xvzf ibm_db-3.0.3.tar.gz

3)解压ntx64_odbc_cli_3.0.3.zip,并将解压后的clidriver文件放到ibm_db-3.0.3中

4)安装

           python setup.py install  

5)  验证 

           在python中, import ibm_db ,无报错即为成功

6) python3 连接数据库代码:

import ibm_db_dpi


def executeSQL(self, db_sql, db_obj):
    conn_info = f"DATABASE={obj['connectStr']['database']};HOSTNAME={obj['connectStr']['host']};PORT={obj['connectStr']['port']};" \
                f"PROTOCOL=TCPIP;UID={obj['connectStr']['user']};PWD={obj['connectStr']['password']};AUTHENTICATION=SERVER;"
    conn = ibm_db_dbi.connect(conn_info)
    conn.set_autocommit(True)
    cursor = conn.cursor()
    try:
        query_str = db_sql.split(' ')[0]
        if query_str == "select" or query_str == "SELECT":
            cursor.execute(db_sql)
            data = cursor.fetchall()
            res = json.dumps(f'{data}')
            return res
        else:
            try:
                cursor.execute(db_sql)
                res = str(cursor.rowcount)
                conn.commit()
            except:
                conn.rollback()
                raise Exception("操作有误")
            return res
    except:
        raise Exception("操作有误")

 

问题:

1)使用ibm-db连接DB2时,报错 SQLCODE=-1042

连接时,连接信息加上AUTHENTICATION=SERVER; 认证模式改成server。  尝试并成功

…/clidriver\bin\amd64.VC12.CRT中找到msvcp120.dll、msvcr120.dll这两个文件,复制到C:\Windows\System32中。  未尝试

2)IBM SQL30082N 安全处理失败,因为 "24

       网络问题, 检测防火墙,telnet端口尝试。

3)问题排查思路,测试clidriver是否可以连接

     db2cli.exe validate -database dbname:host:50000 -connect -user username -passwd passwd

     在排查python库是否能够连接,代码在上面。

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云中烤飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值