• 82.python 手动安装ibm_db2步骤


    1.python 手动安装ibm_db2步骤:(在最下面我贴着我下载包的云盘路径,但不保证对你有用)

    """说实话这个包是我见过最恶心的包,整整弄了三天,网上的博客我是服了,驴头不对马嘴,自己写的博客估计以后自己都看不懂么,所以我自己整理了一篇."""

    windows:

    
    """非常遗憾的告诉你,ibm_db2我安装好了之后操作不了数据库,建议使用pyodbc 直接pip可以安装可以操作,这又是一个神坑啊"""
    
    1.在命令pip install ibm_db -i https://pypi.douban.com/simple/,之后你会发现卡住了,但是下面出现了一个下载ibm_db的tar.gz的连接.
        
    2.复制连接到浏览器中,或者出去,不管咋样下到这个包解压之后会出现一个ibm_db-xxx的目录,后面的xxx是版本号,将这个目录
    直接拷贝到C:UsersyztPycharmProjects	est_envvenvLibsite-packages你的环境的site-packages目录下
        
    3.这个时候不要急着退出,
    打开cmd,cd到你的ibm_db-3.0.2刚才移动过来ibm_db目录下(我用的是虚拟环境)所以目录的路径是下面这个,
    C:UsersyztPycharmProjects	est_envvenvLibsite-packagesibm_db-3.0.2
    你的根据自己的配置cd进去之后执行如下命令:
    C:UsersyztPycharmProjects	est_envvenvScriptspython.exe setup.py install(我用的虚拟环境)
        
    4.这个时候回报错出现第二个需要下载的文件路径如下:(不管是用什么方法都可以只要下下来,解压出来会生成一个clidriver的
    文件夹,直接将文件拷贝到C:UsersyztPycharmProjects	est_envvenvLibsite-packagesibm_db-3.0.2路径下)
    https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/ntx64_odbc_cli.zip
        
    5.继续执行在cmd中执行C:UsersyztPycharmProjects	est_envvenvScriptspython.exe setup.py install,这个
    时候会再次报错,这次会出现一个db2_xxx.dll文件找不到,这个是db2的客户端的可执行文件,需要去ibm的网站下载(记住需要注
    册账号才能下载),路径如下,看到图了之后选择window64或者linux你随意.进入之后,会出现两个选择框都点着点击继续,然后页
    面会出现第二幅图的样子,红框中的是在window上可以点击执行的文件.(红框下面的两个比较坑,下出来解压之后是两个.msm文件不会用)
    https://www.ibm.com/support/pages/node/1116777
    
    6.红框中的下载好了之后直接点击运行就可以了,之后直接加入环境变量(随意加,不存在java呢种还需要创建JAVA_HOME变量这种
    方式,只要加进去就可以)最后执行下面的命令(cmd中),就安装好了:
        
    C:UsersyztPycharmProjects	est_envvenvScriptspython.exe setup.py install(我用的虚拟环境)
    
    
    7.这个时候你去项目中导包,可能又会报错ImportError: DLL load failed: 找不到指定的模块。这个是因为刚才的clidriver文件夹
    需要给,经过第六步生成的这个路径C:UsersyztPycharmProjects	est_envvenvLibsite-packagesibm_db-3.0.2-py3.6.egg
    下面赋值一份.之后就可以直接在项目中使用了
    
    注意:
        不要去网上下载人家云盘里面的ibm_db版本包,呢都是以前的版本,db2呢个客户端的.dll文件根本找不到它,跟着你的pip显现的
    版本下载即可(否则你可能安装的怀疑人生)
    

    图一:

    图二:

    链接:https://pan.baidu.com/s/1H0F48AG7J7MHwvwS-eM2zw
    提取码:dfq0

    linuxs:

    关于这个db2数据库我又被恶心了一把
    1.安装pyodbc
    pip install pyodbc -i https://pypi.douban.com/simple   
    直接报错:error: command 'gcc' failed with exit status 1
    搜索很简单解决: yum install unixODBC unixODBC-devel
        
    2.安装db2 odbc操作客户端工具,window里面有下载连接记得换成linux的就行了
    [root@localhost opt]# ls
    odbc_cli   test.py linuxx64_odbc_cli.tar.gz   test2_db2.py
    
    tar -xvf linuxx64_odbc_cli.tar.gz   # 直接解压
    
    3.配置环境变量
    # db2数据odbc路径配置
    export DB2_CLI_DRIVER_INSTALL_PATH=/opt/odbc_cli/clidriver
    export LD_LIBRARY_PATH=/opt/odbc_cli/clidriver/lib
    export LIBPATH=/opt/odbc_cli/clidriver/lib
    export PATH=/opt/odbc_cli/clidriver/bin:$PATH
    export PATH=/opt/odbc_cli/clidriver/adm:$PATH
    
    4.配置odbc连接
    01:https://www.cnpython.com/qa/74714 # 看这个博客你会知道需要下载db2 odbc操作的东西对没问题就是他
    02:但是基本没有odbc关于连接db2的完整配置的博客
    [root@localhost opt]# odbcinst -j   # 查看unixodbc操作的配置驱动文件
    unixODBC 2.3.1
    DRIVERS............: /usr/local/etc/odbcinst.ini  # 这个是driver驱动的文件,配置了它就可以使用驱动了
    SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini    # 注意这个是DNS解析文件(也就是配置好ip,端口他给你解析)
    FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources
    USER DATA SOURCES..: /usr/local/etc/odbc.ini
    SQLULEN Size.......: 8
    SQLLEN Size........: 8
    SQLSETPOSIROW Size.: 8
    
    03:vim /root/odbcadd.txt
    [DB2]
    Driver      = db2
    Description = My MS SQL DB2
    
    odbcinst -i -s -f /root/odbcadd.txt -l  # 使用这个命令将写的配置文件,加载进去/usr/local/etc/odbc.ini(但是没完)
    
    [root@localhost opt]# cat /usr/local/etc/odbc.ini
    [DB2]
    Driver      = db2
    Description = My MS SQL DB2
    
    04:编辑驱动文件,写入如下内容(这个是驱动),driver中的路径需要根据你安装db2_odbc的软件目录确定,我在/opt安装的所以路径如下/opt/odbc_cli/clidriver/lib/libdb2.so
        
    [root@localhost opt]# cat /usr/local/etc/odbcinst.ini
    [db2]
    Description = DB2 Driver
    Driver      = /opt/odbc_cli/clidriver/lib/libdb2.so
    FileUsage   = 1
    DontDLClose = 1
    
    05:编写python脚本连接测试
    [root@localhost opt]# cat test2_db2.py 
    import pyodbc
    class DB2Opera(object):
    
        def __init__(self, host, user, password, port="50000", database=""):
            self.host = host
            self.user = user
            self.password = password
            self.port = int(port)
            self.database = database
        def conn(self):
            self.conn = pyodbc.connect(
                'Driver={db2}; '   # 驱动与DNS二选一即可:它对应的是cat /usr/local/etc/odbcinst.ini  
                # 'DSN=DB2;'  # 它对应的是cat /usr/local/etc/odbc.ini(与上面的参数二选一即可)
                'Hostname=%s; '
                'Port=%s; '
                'Protocol=TCPIP; '
                'Database=%s; '
                'CurrentSchema=schema; '
                'UID=%s; '
                'PWD = %s;' % (self.host, self.port, self.database, self.user, self.password)
            )
            self.cur = self.conn.cursor()
            print("连接成功")
    if __name__ == '__main__':
        mysql_obj = DB2Opera("10.20.86.45", "db2inst1", "11111111", database="ca61gm")
        mysql_obj.conn()
    
    06:执行成功
    [root@localhost opt]# python3 test2_db2.py 
    连接成功
    
    参考链接:根据后面的星星判断重要程度(越重要星星越多)
        https://blog.csdn.net/qq_35342617/article/details/88780545  ***
        http://blog.chinaunix.net/uid-8795823-id-2013290.html  ****
        https://blog.csdn.net/toseekin/article/details/107901810 *
        https://www.cnpython.com/qa/74714 *
        https://blog.csdn.net/avwjq/article/details/43532853  *****
        https://blog.csdn.net/u010587433/article/details/46799037  **
    
  • 相关阅读:
    python_基础2
    springboot自定义配置文件类
    自定义实现spring-boot-starter-data-redis
    @ConditionalOnBean详解
    @Conditional详解
    并发包大神Doug Lea
    idea新建springboot项目
    springboot实现自定义start
    世界上唯一公平的事情就是每个人都会死。
    hashtable存null会发生什么?
  • 原文地址:https://www.cnblogs.com/liuzhanghao/p/13453021.html
Copyright © 2020-2023  润新知