从Linux机器连接到SQL服务器时,我们遇到以下错误。
('IM002','[IM002] [unixODBC] [Driver Manager]数据源名称没有 找到了,并且没有指定默认驱动程序')
你能帮帮我吗?
这是代码,
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;'
答案 0 :(得分:2)
我建议您使用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/en-us/sql-server/developer-get-started/python-ubuntu
答案 1 :(得分:0)
不确定这是否有帮助,但您可以尝试为SQL Server安装新的Microsoft odbc驱动程序:" msodbcsql"
更多详情请点击此处:https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools
答案 2 :(得分:0)
尝试使用pytds,它可以在比pyodbc
更复杂的环境中工作,并且更易于设置。
我使它可以在Ubuntu 18.04上运行
import pytds
with pytds.connect('server', 'database', 'user', 'password') as conn:
with conn.cursor() as cur:
cur.execute("select 1")
cur.fetchall()