繁体   English   中英

无法从Linux机器通过python连接SQL Server

[英]Unable to connect SQL server via python from Linux machine

从Linux计算机连接到SQL Server时出现以下错误。

(“ IM002”,“ [IM002] [unixODBC] [驱动程序管理器]找不到数据源名称,并且未指定默认驱动程序”)

你能帮我么?

这是代码,

odbc.ini

[sqlserverdatasource]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
Trace = No
Servername = Name
Database = DatabaseName

--------------------
odbcinst.ini

[FreeTDS]
Description = TDS driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
CPTimeout =
CPReuse =
FileUsage = 1

connection_string = 'DSN=sqlserverdatasource;DRIVER={FreeTDS}; SERVER=Name;PORT=1433;DATABASE=DatabaseName; UID=UserName; PWD=UserPassword;'

我建议您使用ODBC驱动程序。

这是安装方法:

Ubuntu 16.04

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install -y msodbcsql unixodbc-dev

RHEL 7

sudo su
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
exit
sudo ACCEPT_EULA=Y yum install -y msodbcsql unixODBC-devel 

安装驱动程序后,您可以如上所述创建odbc.ini。

如果您正在使用其他Linux发行版,请查看此博客以获取更多详细信息: https : //blogs.msdn.microsoft.com/sqlnativeclient/2017/02/04/odbc-driver-13-1-for-linux-released/

如果您尝试使用pyodbc,则这里是入门指南: https : //www.microsoft.com/zh-cn/sql-server/developer-get-started/python-ubuntu

不知道这是否有帮助,但是您可以尝试为SQL Server安装新的Microsoft odbc驱动程序:“ msodbcsql”
此处有更多详细信息: https : //docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools

如果您正在使用python:

尝试使用pytds,它与pyodbc相比,在比pyodbc更复杂的环境中工作,并且更易于设置。

我让它在Ubuntu 18.04上工作

参考: https : //github.com/denisenkom/pytds

文档中的示例代码:

import pytds
with pytds.connect('server', 'database', 'user', 'password') as conn:
    with conn.cursor() as cur:
        cur.execute("select 1")
        cur.fetchall()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM