一.安装
freetd安装方式1 -- 未成功过
1. 安装freetds
#tar zxvf freetds-0.82.tar.gz
#cd freetds-0.82
#./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
#make && make install
#echo "/usr/local/freetds/lib" >> /etc/ld.so.conf.d/freetds.conf
#ldconfig -v
按照文档说的做,始终出错
error: command 'gcc' failed with exit status 1
freetd安装方式2 -- 可成功
检查python-devel包是否安装,如未安装,请安装
#yum install -y python-devel
#tar zxvf freetds-0.82.tar.gz
#cd freetds-0.82
#./configure 此处不加任何参数
#make
#make install
#ldconfig -v
其他安装
另外还需要注意检查以下这些包是否存在
libxml2 libxml2-dev libxslt* zlib gcc openssl
2. 安装setuptools
#tar zxvf setuptools-3.5.1.tar.gz
#cd setuptools-3.5.1
#python setup.py install
3. 安装pymssql
#tar zxvf pymssql-2.1.0.tar.gz
#cd pymssql-2.1.0
#python setup.py install
二.报错解决
2.1 20017错误
解决:连接参数配置 charset='utf-8'
tds_version = '7.1'
2.2 连接成功但是查询返回为空
原因:cursor.execute(sql)之后使用手动提交:connector.commit(),手动提交没生效 大坑
解决:连接后配置自动提交connector.autocommit(True)
2.3 连接报错 DB-Lib error message 20002
1.可能是charset设置不对: utf8 或 CP936
2.可能是 服务器ip, 数据库名等填写不对导致
2.4 报错 找不到libsybdb.so.5
按上面步骤执行idconfig ;若无此命令则 找出libsybdb.so.5 文件所在路径,路径添加进文件~/.bashrc
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
激活: source ~/.bashrc
参考文档:
python pymssql安装_linux安装pymssql过程_weixin_39638929的博客-CSDN博客
Python:利用pymssql模块操作SQL server数据库_python的sql模块_小兮说测试的博客-CSDN博客
Releases · ramiro/freetds · GitHub