linux使用pyodbc和freetds连接sqlserver

安装unixODBC

使用pyodbc需要Linux上安装unixODBC

可使用yum或apt安装unixODBC-devel包

编译安装:http://www.unixodbc.org/download.html

安装成功验证

#odbcinst -j

unixODBC 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

安装连接驱动

unixodbc中没有自带连接sqlserver的驱动,freetds提供了相关的连接驱动,也可以通过微软提供的脚本来安装,这里选择freetds来提供连接驱动

微软驱动详细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或下载项目到文件夹中

示例使用freetds的0.91版本https://github.com/FreeTDS/freetds/releases/tag/branch-0_91

**安装前确保安装了如下工具:automake,autoconf,autogen,gettext,libtool,make,gcc,perl

解压后进入目录运行

./autogen.sh

make

make install

上述安装针对github上的源码安装,下载其他包时有的已经生成了configure文件只需运行./configure后make,make install。

默认安装路径为/user/local/etc

测试:编辑freetds.conf在其中加入sqlserver的连接信息文件一般在/user/local/etc中

[server]
  host = 192.168.6.6
  port = 1433
  tds version = 7.0
  client chaeset = UTF-8

其中的tds version可查看文件中的示例选择,错误的值可能导致连接失败 Unexpected EOF from the server

使用tsql测试连接

#tsql -S server -U user -P password

locale 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或者下载包后进入主目录python setup.py install

编辑/etc/odbcinst.conf文件,该文件也可能在/usr/local/etc中

添加freetds连接库

在文件中加入

[SQL Server]

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

其中driver为freetds的提供的驱动文件,SQL Server为连接字符串使用的驱动名

测试:

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

原文地址:https://www.cnblogs.com/QQQmadNULL/p/9547647.html

时间: 2024-08-28 14:54:17

linux使用pyodbc和freetds连接sqlserver的相关文章

QT unixODBC+freetds连接sqlserver并交叉编译移植到ARM上

最近产品需要做一个数据上传功能.客户要求直接写入SQLserver数据库.之前QT连接数据库是默认来年将诶sqlite数据库.由于sqlite是QT默认自带的操作起来比较简单,但是SQLserver QT没有带驱动所以需要安装驱动插件.下面我们来看一下是QT支持SQLServer所需要的插件. 一.unixODBC 二.QT的ODBC驱动 三. FreeTDS Ubuntu篇: 编译QT的ODBC驱动需要unixODBC,所以要先编译unixODBC 一.编译unixODBC 下载:http:/

Linux下通过ODBC连接sqlserver

1.需求: 最近有个需求就是要在linux下连接(可以执行sql语句)sqlserver 2.环境 操作系统:  Centos6.5 数据库:     SQLServer2014 数据库有用户admin,密码是123456,数据库库名是chzh 3.注意: MS从来没有提供过SQLServer for Linux,所以也不要去尝试在Linux系统安装SQLServer,但是可以通过ODBC连接Windows系统的SQLServer数据库: 4.所需软件包: Linux系统的ODBC unixOD

BIEE 连接SQLServer业务数据源(Linux环境)

biee11g默认安装了mssqlserver的数据驱动,不需要在服务器端进行重新安装,配置过程主要基于ODBC实现,本文主要介绍客户端为windows服务端为linux系统的配置过程. 1.客户端 在客户端首先配置odbc数据源,可以直接在运行中输入odbcad32,打开配置界面--系统DNS---添加 选择SQLserver的相关驱动,一般选择wire protocol型的驱动,配置sqlserver数据库连接信息,测试一下是否连接成功,并保存退出. 注意此时的ODBC数据源名称要记录下来,

关于.Net Core 部署在Linux下连接SqlServer数据库超时解决办法

.Net Core 在 Linux 下连接 SqlServer 需要 SqlServer2008 SP3或以上版本,或SqlServer2012,或SqlServer2014. 如果SqlServer2008低于SP3版本,会出现连接超时的问题. 解决办法: 官方下载SqlServer 2008 Sp3 补丁 https://download.microsoft.com/download/9/6/4/964BB4EC-FC28-4DA7-9295-7D4A8FDBE1A4/CHS/SQLServ

Oracle 配置transparent gateway(透明网关)连接sqlserver数据库(gateway安装在sqlserver服务器)

sqlserver服务器:192.168.6.16  测试数据库:orcl  测试表:shenfen  测试视图:id   端口:1433 oracle服务器:192.168.6.10 gateway安装在192.168.6.16 一.sqlserver 服务器 C:\Users\Administrator>hostname WIN-MIRBE4NEBAU C:\Users\Administrator>ipconfig Windows IP 配置 以太网适配器 本地连接: 连接特定的 DNS 

firedac使用UNIXODBC连接SQLSERVER

1)下载 SQL SERVER ODBC DRIVER FOR 64-BIT LINUX. 如果你有旧版mssql 工具安装,请删除任何较旧的 unixODBC 包. sudo yum remove unixODBC-utf16 unixODBC-utf16-devel 运行以下命令以安装mssql 工具使用 unixODBC 开发人员包. sudo yum install -y mssql-tools unixODBC-devel 2)创建一个 ODBC 数据源,配置文件在 /etc/odbc

使用Django创建一个后端是SQLSERVER的简单系统(一)Django连接SQLServer数据库

window环境下Django连接SQLSERVER, 1.创建项目: 2.创建application: 3.使用pycharm打开项目,如下图: 4.配置虚拟环境: 安装Django\pyodbc\django-pyodbc-azure,如下图: 5.在配置环境中配置连接字符: 6.在配置环境中安装app,设置templates路径: 7.定义一个类: 8.make migrations: 9.migrate: 10.我们看一下数据库: 11. 表已经建好了,接下来我们写一个管理系统. 原文地

asp.net 连接sqlserver数据库

在asp.net中连接sqlserver数据库之前,首先得确保正常安装了sqlserver2008,同时有数据库. 在项目中添加一个类DB,用来专门负责执行对数据库的增删改查.在添加的过程中会弹出下面的一个提示 直接点是就可以了. 在这个类中,首先定义一个连接对象 private SqlConnection conn = null;然后定义下面三个函数 private void SetConnection()//初始化连接对象 { if (conn == null) { //获取配置文件中的数据

kali linux 系列教程之metasploit 连接postgresql可能遇见的问题

kali linux 系列教程之metasploit 连接postgresql可能遇见的问题 文/玄魂   目录 kali linux 下metasploit 连接postgresql可能遇见的问题................................ 1 前言............................................................................................................... 1