linux使用pyodbc和freetds连接sqlserver
安裝unixODBC
使用pyodbc需要Linux上安裝unixODBC
可使用yum或apt安裝unixODBC-devel包
編譯安裝:http://www.unixodbc.org/download.html
安裝成功驗(yàn)證
#odbcinst -junixODBC 2.3.7 DRIVERS............: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8?
安裝連接驅(qū)動(dòng)
unixodbc中沒有自帶連接sqlserver的驅(qū)動(dòng),freetds提供了相關(guān)的連接驅(qū)動(dòng),也可以通過微軟提供的腳本來安裝,這里選擇freetds來提供連接驅(qū)動(dòng)
微軟驅(qū)動(dòng)詳細(xì)https://docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017
安裝freetds
https://github.com/FreeTDS/freetds
git或下載項(xiàng)目到文件夾中
示例使用freetds的0.91版本https://github.com/FreeTDS/freetds/releases/tag/branch-0_91
**安裝前確保安裝了如下工具:automake,autoconf,autogen,gettext,libtool,make,gcc,perl
解壓后進(jìn)入目錄運(yùn)行
./autogen.sh
make
make install
上述安裝針對(duì)github上的源碼安裝,下載其他包時(shí)有的已經(jīng)生成了configure文件只需運(yùn)行./configure后make,make install。
默認(rèn)安裝路徑為/user/local/etc
測試:編輯freetds.conf在其中加入sqlserver的連接信息文件一般在/user/local/etc中
[server]host = 192.168.6.6port = 1433tds version = 7.0client chaeset = UTF-8?
其中的tds version可查看文件中的示例選擇,錯(cuò)誤的值可能導(dǎo)致連接失敗?Unexpected EOF from the server
使用tsql測試連接
#tsql -S server -U user -P passwordlocale is "en_US.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1>?
安裝pyodbc
https://pypi.org/project/pyodbc/
pip install pyodbc或者下載包后進(jìn)入主目錄python setup.py install
編輯/etc/odbcinst.conf文件,該文件也可能在/usr/local/etc中
添加freetds連接庫
在文件中加入
[SQL Server]Driver = /usr/local/lib/libtdsodbc.so?
其中driver為freetds的提供的驅(qū)動(dòng)文件,SQL Server為連接字符串使用的驅(qū)動(dòng)名
?
測試:
import pyodbc DBCONNECTSTR = 'DRIVER={SQL Server};SERVER=192.168.6.6;port=1433;DATABASE=test;UID=user;PWD=password;TDS_Version=7.0;' conn=pyodbc.connect(DBCONNECTSTR) conn.close()注意TDS_Version的值與/usr/local/etc/freetds.conf中的連接示例一致
?
更多python連接sqlserver方法:
https://wiki.python.org/moin/SQL%20Server
https://www.cnblogs.com/AppleZhang/p/7878971.html
?
轉(zhuǎn)載于:https://www.cnblogs.com/QQQmadNULL/p/9547647.html
總結(jié)
以上是生活随笔為你收集整理的linux使用pyodbc和freetds连接sqlserver的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql server的远程连接
- 下一篇: js的数据类型,以及如何判断它们是哪种类