安装**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库是否能够连接,代码在上面。