centos5.4下python访问sqlserver

    技术2022-05-20  63

    以root权限操作

     

    1.安装unixODBC 【下载地址http://www.unixodbc.org/】

    sh configure --prefix=/usr/local/unixODBC

    make 

    make install

     

     

    2.安装freetds 【下载地址http://www.freetds.org/software.html】

    sh configure -prefix=/usr/local/freetds --with-unixodbc=/usr/local/unixODBC /

    -with-tdsver=8.0 -enable-msdblib -enable-dbmfix -with-gnu-ld -enable-shared -enable-static

    make 

    make install

    注:指明--with-unixodbc=/usr/local/unixODBC可以生成libtdsodbc.so

     

     

    3.配置unixODBC

    进入/usr/local/unixODBC

    创建文件tds.driver.template

    [TDS]

    Description = FreeTDS Driver for Linux & MSSQL on Win32

    Driver      = /usr/local/freetds/lib/libtdsodbc.so

    Setup       = /usr/local/freetds/lib/libtdsS.so

     

    保存后执行命令

    bin/odbcinst -i -d -f tds.driver.template

     

     

    创建文件tds.datasource.template

    [my_data]

    Description = Connection to windows virtual machine

    Driver      = TDS

    Trace       = No

    Database    = aa

    Server      = 192.168.7.3

    Port        = 1433

    TDS_Version = 8.0

     

    保存后执行命令

    bin/odbcinst -i -s -l -f tds.datasource.template

     

    4.测试freetds和unixODBC

    进入/usr/local/freetds/目录下

    执行命令

    bin/tsql -H192.168.7.3 -p1433 -Usa -Padmin1234

    1>use aa

    2>select * from sysfiles

    3>go

     

    再进入

    /usr/local/unixODBC

    执行命令

    bin/isql my_data sa admin1234

    SQL>select * from sysfiles

     

     

    5.安装pyODBC 【下载地址http://code.google.com/p/pyodbc/】

    首先安装python2.4.4版,步骤:

    ./configure

    make

    make install

     

    然后编译安装

    python setup.py install

     

    注:如果编译出错,请

    cp /usr/local/unixODBC/include/* /usr/include/

    cp /usr/local/unixODBC/lib/* /usr/lib/

    然后再运行

     

     

    6.python测试代码

    import pyodbc

     

    conn = pyodbc.connect("DSN=my_data;UID=sa;PWD=admin1234;DATABASE=aa;")

    sql = 'select * from sysfiles'

     

    cursor = conn.cursor()

    cursor.execute(sql)

     

    rs = cursor.fetchall()

    if len(rs) > 0:

    for i in range(0, len(rs)):

    row = rs[i]

    print row[0]

    cursor.close()

    conn.close()

     

     

    *7.如果其他账户下使用pyodbc

    将第5步生成的文件pyodbc.so复制到zenoss的python目录下

    cp /usr/local/lib/python2.4/site-packages/pyodbc.so /opt/zenoss/lib/python2.4/site-packages/

    【pyodbc.so可能位于/usr/lib/python2.4/site-packages/目录下】

    这样就可以zenoss用户使用pyodbc了

     

     

    参考文献:

    1.《ubuntu9.10下python访问Sql server的解决方案》【http://www.jeffkit.info/2010/01/476/】


    最新回复(0)